今天在读 jQuery 源码的时候,发现下面的写法: (function(window,undefined){ ...// code goes here })(window); window 作为参数传递肯定是没问题, 表示 BOM 浏览器对象模型中的 window 对象.但是这里为什么会有一个名为 undefined 的形参呢?起初的时候很不理解.去技术群请教了一下,才真正理解了这里的原因. 原来,Javascript 中的 undefined 并不是作为关键字(全部Javascript关键字…
读 jQuery 1.4.4 版本代码的时候,发现下面的写法: (function( window, undefined ) { ... // code goes here })(window); window 肯定是没问题, 表示 BOM 浏览器对象模型中的 window 对象.但是这里为什么会有一个名为 undefined 的形参呢?起初的时候很不理解.去技术群请教了一下,才真正理解了这里的原因. 原来,Javascript 中的 undefined 并不是作为关键字(全部Javascrip…
最常见的闭包 (Closure) 范式大家都很熟悉了: 123 (function() {// ...})(); 很简单,大家都在用.但是,我们需要了解更多.首先,闭包是一个匿名函数 (Anonymous function), 即是 (function() {}) 这部分.之所以要给 function 添加括弧是为了让它形成一个表达式 (expression), 有了表达式,并且确定它的类型是个函数 (Function 实例), 就可以直接调用它.所以,后面的一对括弧是可以工作的,它的意义是:我…
一.首先是最常见的闭包 (Closure) 范式自执行函数的写法,这里用匿名函数封装(构造块级作用域),避免了匿名函数内部的代码与外部之间发生冲突(如使用了相同的变量名). (function() {// ...})(); 二.自执行函数和其他函数类似,都可以传入参数:jQuery源码中将window作为一个参数传入, window是DOM对象模型的最顶层对象,把全局变量传进来,就避免了到外层去寻找,提高效率: (function(window) {// ...})(window); 当然你也可…
(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也不是…
JS 关于(function( window, undefined ) {})(window)写法的理解 [网络整理] (function( window, undefined ) {})(window); 这个,为什么要将window和undefined作为参数传给它? (function( $, undefined ) {})(jQuery); 同理 因为 ecmascript 执行JS代码是从里到外,因此把全局变量window或jQuery对象传进来,就避免了到外层去寻找,提高效率.und…
(function( $, jQuery , undefined ) {})(jQuery); 为什么要将window和undefined作为参数传给它? 因为 ecmascript 执行JS代码是从里到外,因此把全局变量window或jQuery对象传进来,就避免了到外层去寻找,提高效率.undefined在老一辈的浏览器是不被支持的,直接使用会报错,js框架要考虑到兼容性,因此增加一个形参undefined. ; (function( window ) { alert(window.unde…
一.区别 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. 在Jquery中$(function(){ })和$(document).ready(function(){ })的效果是一样,是在DOM树加载完成之后(DOM树加载完不代表全部资源加载完,例如图片,音频和视频等还没加载)就会执行.所以$(document).ready(function(){ })是比window.onload要先执行的.那么JQuery中$(document).ready(functio…
首先,这两个函数都是在页面载入后执行的函数,其中两者的区别在于: 在jQuery中$(function(){})等同于jQuery(function(){}),另一个写法为jQuery(document).ready(function(){ }),在DOM加载完成之后立即执行,其中存放操作DOM的操作,在其执行时DOM已经存在,不可用于存放开发插件的代码. (function($){})(jQuery)实际是jQuery对匿名函数function($){}的调用,后面括号内的jQuery为传递给…