Javascript的自执行函数

  自执行函数其实也就是“立即执行的函数”,它有四个特点:提高性能、利于压缩、避免冲突、依赖加载;

1、减少作用域查找

JS代码:

1 // Anonymous function that has three arguments
2 function(window, document, $) {
3
4   // You can now reference the window, document, and jQuery objects in a local scope
5
6 }(window, document, window.jQuery); // The global window, document, and jQuery objects are passed into the anonymous function 

也就是将作用域放到自执行函数的作用域中,Javascript解释器首先会现在自执行函数的作用域内查找,其次再去全局查找。

时间: 2024-10-20 04:09:04

Javascript的自执行函数的相关文章

(转)扫盲--JavaScript的立即执行函数

看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数.立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们想到的解决办法就是使用立即执行函数. 1.什么是立即执行函数(IIFE) 在了解立即执行函数之前先明确一下函数声明.函数表达式及匿名函数的形式,如下图: 接下来看立即执行函数的两种常见形式:( function(){-} )()和( function (){-} () ),一个是一个匿名函数包裹在一

javascript中的立即执行函数(function(){…})()

javascript中的立即执行函数(function(){…})() 深入理解javascript中的立即执行函数,立即执行函数也叫立即调用函数,通常它的写法是用(function(){…})()包住业务代码,使用jquery时比较常见. ( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此.要

javascript立即执行函数表达式(IIFE)

常用的两种写法: (function(){ /* code */ }()); (推荐写法) (function(){ /* code */ })(); Q:为什么这样写,函数就嗯那个立即执行? A:因为在javascript里,括号内部不能包含语句,当解析器对代码进行解释的时候,先碰到了(),然后碰到function关键字就会自动将()里面的代码识别为函数表达式而不是函数声明. eg:如下代码就会报错. function(){ /* code */ }(); // SyntaxError: Un

javascript立即执行函数

javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花;当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解.  ( function(){…} )()  和  ( function (){…} () )  是两种javascript立即执行函数的常见写法; 最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的; 后来发现加括号的原因并非如此.要理解立即执行函数,需要先理解一

javascript闭包和立即执行函数的作用

一.闭包--closure 先看一个闭包的例子.我们想实现一个计数器,最简单的方法就是定义一个全局变量,计数的时候将其加1.但是全局变量有风险,哪里都有可能不小心改掉它.那局部变量呢, 它只在函数内部有效,函数调用完后它就没了,而且全局没法使用.那我们用想让计数器全局使用,又不想让这个变量被随便修改怎么办.这就需要闭包了: function count(){ var i=0; return function () { return ++i; } } 这个例子实现了一个简单的计数器.函数"coun

JavaScript:立即执行的函数表达式

先要理解清楚几个概念: 以下转自:http://www.cnblogs.com/TomXu/archive/2011/12/31/2289423.html 问题的核心 当你声明类似function foo(){}或var foo = function(){}函数的时候,通过在后面加个括弧就可以实现自执行,例如foo(),看代码: // 因为想下面第一个声明的function可以在后面加一个括弧()就可以自己执行了,比如foo(),// 因为foo仅仅是function() { /* code *

Javascript 自动执行函数(立即调用函数)

开头:各种原因总结一下javascript中的自动执行函数(立即调用函数)的一些方法,正文如下 在Javascript中,任何function在执行的时候都会创建一个执行上下文,因为function声明变量和function有可能只在该function内部,这个上下文,在调用function的时候,提供一些简单的方式来创建自由变量或私有子function. eg: // 由于该function里返回了另外一个function,其中这个function可以访问自由变量i // 所有说,这个内部的f

深入理解javascript中的立即执行函数(function(){…})()

这篇文章主要介绍了深入理解javascript中的立即执行函数,立即执行函数也叫立即调用函数,通常它的写法是用(function(){-})()包住业务代码,使用jquery时比较常见,需要的朋友可以参考下http://www.jb51.net/article/50967.htm javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. ( function()

Javascript自执行函数 (Immediately-Invoked Function Expression)

1. Javascript编译器在遇到function这个关键字时,默认认为它是function声明,而不是表达式. 2. 在已声明的function后面加括号,即可调用它.比如, function foo(){console.log('hello javascript.')} foo(); 3. 括号里面允许javascript表达式,(function(){console.log('hello javascript')}), 这样这个匿名函数就是一个表达式,而不是function的声明.根据