您的位置:首页 > Web前端 > JQuery

jquery源码阅读知识储备(1)

2011-02-03 01:02 471 查看
(function( window, undefined ) {
... // code goes here
})(window);


为什么会有一个名为 undefined 的形参呢?

原来,Javascript 中的 undefined 并不是作为关键字。因此可以允许用户对其赋值。

var undefined = 'myValue';


如此一来,假如 jQuery 中使用下面的写法:

(function( window ) {

... // code goes here

})(window);


必然造成中间代码里的 undefined 遭到污染。因为在默认情况下,对于一个未定义的变量,它的值应该是 undefined,假如用户使用形如

var undefined = 'myValue';// 或者

window.undefined = 'myValue';



的代码进行赋值,那么,jQuery 中的 undefined 的值就变成了用户指定的值(这里是字符串 ‘myValue’)。这样会造成 jQuery 内部异常。
而 jQuery 采用的这种写法,就很好的避免了这个问题。

在执行匿名函数的时候,只传递一个参数 window, 而不传递 undefined,那么函数体中的 undefined 局部变量的值,刚好就是 undefined. 甚为巧妙啊。

我觉得这是一个比较好的技巧吧,看看我的测试代码:

var t2 = 12;
var t1 = 16;
function show(t1,t2){
alert(t1);
alert(t2);
}

show(66);//outputs:"66",undefined
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: