读 jQuery 1.4.4 版本代码的时候,发现下面的写法: (function( window, undefined ) { ... // code goes here })(window); window 肯定是没问题, 表示 BOM 浏览器对象模型中的 window 对象.但是这里为什么会有一个名为 undefined 的形参呢?起初的时候很不理解.去技术群请教了一下,才真正理解了这里的原因. 原来,Javascript 中的 undefined 并不是作为关键字(全部Javascrip…
今天在读 jQuery 源码的时候,发现下面的写法: (function(window,undefined){ ...// code goes here })(window); window 作为参数传递肯定是没问题, 表示 BOM 浏览器对象模型中的 window 对象.但是这里为什么会有一个名为 undefined 的形参呢?起初的时候很不理解.去技术群请教了一下,才真正理解了这里的原因. 原来,Javascript 中的 undefined 并不是作为关键字(全部Javascript关键字…
一.首先是最常见的闭包 (Closure) 范式自执行函数的写法,这里用匿名函数封装(构造块级作用域),避免了匿名函数内部的代码与外部之间发生冲突(如使用了相同的变量名). (function() {// ...})(); 二.自执行函数和其他函数类似,都可以传入参数:jQuery源码中将window作为一个参数传入, window是DOM对象模型的最顶层对象,把全局变量传进来,就避免了到外层去寻找,提高效率: (function(window) {// ...})(window); 当然你也可…
最常见的闭包 (Closure) 范式大家都很熟悉了: 123 (function() {// ...})(); 很简单,大家都在用.但是,我们需要了解更多.首先,闭包是一个匿名函数 (Anonymous function), 即是 (function() {}) 这部分.之所以要给 function 添加括弧是为了让它形成一个表达式 (expression), 有了表达式,并且确定它的类型是个函数 (Function 实例), 就可以直接调用它.所以,后面的一对括弧是可以工作的,它的意义是:我…
(function( window, undefined ) {})(window);这个,为什么要将window和undefined作为参数传给它? (function( $, undefined ) {})(jQuery); 同理 因为 ecmascript 执行JS代码是从里到外,因此把全局变量window或jQuery对象传进来,就避免了到外层去寻找,提高效率.undefined在老一辈的浏览器是不被支持的,直接使用会报错,js框架要考虑到兼容性,因此增加一个形参undefined. 还…
1.(function(window,undefined){})(window); Q:(function(window,undefined){})(window);中为什么要将window和undefined作为参数传给它? A:因为 javascript 执行JS代码是从里到外,因此把全局变量传进来,就避免了到外层去寻找.提高效率 Q:不明白为什么JS 的undefined还可以做变量名. undefined算是JS里面的什么呢?不是关键字,不是保留字,true跟false还有null也不是…
(function( $, jQuery , undefined ) {})(jQuery); 为什么要将window和undefined作为参数传给它? 因为 ecmascript 执行JS代码是从里到外,因此把全局变量window或jQuery对象传进来,就避免了到外层去寻找,提高效率.undefined在老一辈的浏览器是不被支持的,直接使用会报错,js框架要考虑到兼容性,因此增加一个形参undefined. ; (function( window ) { alert(window.unde…
JS 关于(function( window, undefined ) {})(window)写法的理解 [网络整理] (function( window, undefined ) {})(window); 这个,为什么要将window和undefined作为参数传给它? (function( $, undefined ) {})(jQuery); 同理 因为 ecmascript 执行JS代码是从里到外,因此把全局变量window或jQuery对象传进来,就避免了到外层去寻找,提高效率.und…
有的时候,我们会在JS框架中看到这行 (function(window, undefined) {})(window) ,它是做什么用的,我们来分析下它 首先这就是一个匿名函数,立即执行它 (function(window, undefined) { // coding })(window) 为这么要这样写,有什么作用 对js进行压缩的时候 均可以替换成其他简写字符,从而减少文件大小,因为他们被视为局部变量使用. (function(w, u) { // coding })(w) window:…
var num = 10000 for (var i = 0; i++; i < num) { eval("pp" + i + "=" + i); } (function(window, undefined){ var a1 = new Date(); for (var i = 0; i < num; i++) { document.write(window["pp" + i]); } var a2 = new Date(); ale…