JS 关于(function( window, undefined ) {})(window)写法的理解
来源:互联网 发布:Java使用redis长连接 编辑:程序博客网 时间:2024/06/06 04:51
JS 关于(function( window, undefined ) {})(window)写法的理解 [网络整理]
(function( window, undefined ) {})(window);
这个,为什么要将window和undefined作为参数传给它?
(function( $, undefined ) {})(jQuery); 同理
因为 ecmascript 执行JS代码是从里到外,因此把全局变量window或jQuery对象传进来,就避免了到外层去寻找,提高效率。undefined在老一辈的浏览器是不被支持的,直接使用会报错,js框架要考虑到兼容性,因此增加一个形参undefined。
还有,不要用window.undefined传递给形参,有可能window.undefined被其他人修改了,最好就是甚么都不传,形参的undefined就是真正的undefined了。
- var undefined = 8;
- (function( window ) {
- alert(window.undefined); // 8
- alert(undefined); // 8
- })(window);
- var undefined = 8;
- (function( window, undefined ) {
- alert(window.undefined); // 8
- alert(undefined); // 此处undefined参数为局部的名称为undefined变量,值为undefined
- })(window);
区分上述两种方式:第一种每个语句都要去找一次window。第二种将window作为参数传递过去,是的不要每个语句都去找window,应该是提高了效率。 所以后者,就算外面的人把 undefined 定义了,里面的 undefined 依然不受影响。大概是为了最大程度防止外界的变量定义对所做封装的内部造成影响吧。
原文参考自站长网http://www.software8.co/wzjs/Javascript/2525.html
- //方式一
- (function(undefined ) {
- window.property1 = ……;
- window.property2 = ……;
- ……
- })();
- //方式二
- (function( window, undefined ) {
- ... // code goes here
- })(window);
- //方式三
- (function(undefined ) {
- var tmp = window;
- tmp.property1 = ……;
- tmp.property2 = ……;
- ……
- })();
方式一的效率明显最低,方式二和方式三应该差不多。将window作为参数传递进去就可以让代码里面的语句可以直接用参数中的window,而不用再去找最外层的对象。假如要在函数中为window再设置 100000个属性,用参数传递过去只需要找一次最外层对象。不用参数传递,用到window的语句都要去找一次最外层对象。
- JS 关于(function( window, undefined ) {})(window)写法的理解
- JS中关于(function( window, undefined ) {})(window)写法的理解
- JS 关于(function( window, undefined ) {})(window)写法的理解
- JS 关于(function( window, undefined ) {})(window)写法的理解
- JS 关于(function( window, undefined ) {})(window)写法的理解
- 关于(function( window, undefined ) {})(window)写法的理解
- 关于(function( window, undefined ) {})(window)写法的理解
- 前段百科---JS中形如(function(window, undefined) {})(window)写法的理解
- 有关window.undefined=window.undefined写法的理解
- JS 关于(function(w) {...})(window)写法的理解——立即执行函数
- (function (window, undefined){})(window)
- jQuery 1.4.4 中 function( window, undefined ) 写法原因(function( window, undefined ) {})(window);
- query 中 (function( window, undefined ) {})(window)写法详解(转)
- jquery 中 (function( window, undefined ) {})(window)写法详解(转)
- 有关window.undefined=window.undefined写法的理解(Ext2学习总结)
- (function (window, undefined){})(window)
- function( window, undefined )含义
- 蛋疼的js 之函数篇 (function(window,undefined){code...})(window)
- 程序高手能帮我吗
- 蛋糕的种类
- ASoC架构中的Codec
- 【ZooKeeper Notes 11】ZooKeeper客户端地址列表的随机原理
- 荤笑话
- JS 关于(function( window, undefined ) {})(window)写法的理解
- 鸽巢原理
- ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
- Ogre high performance thread support - request for comments
- HOOK专题
- PowerDesigner导出表到word
- ASoC架构中的Platform
- 【ZooKeeper Notes 12】ZooKeeper 会话超时
- CNNIC:我国网民规模达5.64亿 互联网普及率42.1%