看到大牛们写的js源码,想拜读学习一下。
[code="java"]var KISSY = (function (undefined) {
var host = this,
S,
guid = 0,
EMPTY = '';
S = {
__BUILD_TIME: '20130701201313',
...
};
// exports for nodejs
if (S.Env.nodejs) {
S.KISSY = S;
module.exports = S;
}
return S;
})();[/code]
请看以上的代码,为什么在定义匿名函数的时候要加上undefined的参数定义呢? 在我看来该匿名函数执行的时候也没有传任何参数给它,这个的undefined定义是有啥特殊含义吗?谁知道的话能解释一下吗,最好给点例子什么的。
在 自调用匿名函数 的作用域内,确保undefined是真的未定义。因为undefined能够被重写,赋予新的值。
undefined = "now it's defined";
alert( undefined );
ie now it's defined 可以改变
firefox undefined 不能改变
chrome now it's defined 可以改变
opera now it's defined 可以改变