锁定老帖子 主题:之前没看懂的js代码,今天看懂了
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-17
最后修改:2011-06-17
JavaStudyEye 写道 请问
如下代码的含义是啥啊?为啥要加undefined呢? (function($, undefined){ js code... })(jQuery); 经测试 <script> (function(a,undefined){ alert(a+" "+undefined); })(1,2); </script> undefined是一个普通参数。 |
|
返回顶楼 | |
发表时间:2011-06-17
不错的哦~
|
|
返回顶楼 | |
发表时间:2011-06-17
gdpglc 写道 JavaStudyEye 写道 请问
如下代码的含义是啥啊?为啥要加undefined呢? (function($, undefined){ js code... })(jQuery); 经测试 <script> (function(a,undefined){ alert(a+" "+undefined); })(1,2); </script> undefined是一个普通参数。 ![]() 以前在网上找了篇文章, http://www.fising.cn/2011/01/%e5%85%b3%e4%ba%8e-jquery-1-4-4-%e4%b8%ad-function-window-undefined-%e5%86%99%e6%b3%95%e7%9a%84%e5%8e%9f%e5%9b%a0%e8%ae%a8%e8%ae%ba.shtml 似懂非懂,现在是懂了。 |
|
返回顶楼 | |
发表时间:2011-06-17
还原到原生javascript,就是以下这行代码:
(function(param){})(param); 这叫“匿名函数立刻执行”,()()一个不能少 |
|
返回顶楼 | |
发表时间:2011-06-17
啊?我一直没看懂,是闭包吗?
|
|
返回顶楼 | |
发表时间:2011-06-18
搜下匿名函数,就会明白了
|
|
返回顶楼 | |
发表时间:2011-06-18
谁能分别说说这四段代码的输出结果,并解析一下
(function(window, undefined){ alert(undefined); })(window); var undefined = 'myValue'; (function(window, undefined){ alert(undefined); })(window); var undefined = 'myValue'; window.undefined = 'myValue_2'; (function(window){ alert(undefined); alert(window.undefined); })(window); var undefined = 'myValue'; window.undefined = 'myValue_2'; (function(window, undefined){ alert(undefined); })(window); |
|
返回顶楼 | |
发表时间:2011-06-18
最后修改:2011-06-18
又来闭包啊
macrotea 写道 谁能分别说说这四段代码的输出结果,并解析一下
(function(window, undefined){ alert(undefined); })(window); 1、undefined undefined是保护变量啊 var undefined = 'myValue'; (function(window, undefined){ alert(undefined); })(window); 2、undefined 还是保护变量 var undefined = 'myValue'; window.undefined = 'myValue_2'; (function(window){ alert(undefined); alert(window.undefined); })(window); 3、myValue_2 window 是保护变量啊 var undefined = 'myValue'; window.undefined = 'myValue_2'; (function(window, undefined){ alert(undefined); })(window); 4、myValue js 造诣低微,8知道对不 |
|
返回顶楼 | |
发表时间:2011-06-18
最后修改:2011-06-18
JavaStudyEye 写道 请问
如下代码的含义是啥啊?为啥要加undefined呢? (function($, undefined){ js code... })(jQuery); 你看调用的时候只有一个参数对挖,第二个参数等于轮空了。这个参数就是未定义。但是老式的浏览器不存在undefined这个常量或者var undefined在函数前被定义了,造成了代码污染。所以放在这里等于用浏览器的特性来定义了一个常量。 function test(a) { alert(a); } test(); 看看这个打印出来什么? |
|
返回顶楼 | |
发表时间:2011-06-18
風一樣的男子 写道 又来闭包啊
macrotea 写道 谁能分别说说这四段代码的输出结果,并解析一下
(function(window, undefined){ alert(undefined); })(window); 1、undefined undefined是保护变量啊 var undefined = 'myValue'; (function(window, undefined){ alert(undefined); })(window); 2、undefined 还是保护变量 var undefined = 'myValue'; window.undefined = 'myValue_2'; (function(window){ alert(undefined); alert(window.undefined); })(window); 3、myValue_2 window 是保护变量啊 var undefined = 'myValue'; window.undefined = 'myValue_2'; (function(window, undefined){ alert(undefined); })(window); 4、myValue js 造诣低微,8知道对不 这里的undefined跟闭包毫无关系 |
|
返回顶楼 | |