【发布时间】:2013-01-23 03:02:14
【问题描述】:
谁能详细解释一下这个js的sn-p是做什么的?
(function (window) {
var test = window['test'] = {};
test.utils = new(function(){ ... })();
})(window);
我了解该函数不是全局范围的。我知道它正在创建一个名为 test 的变量,该变量指向 window 对象中的一个属性,该属性是一个空对象。我也明白utils 是测试的属性。
我不明白最后一部分的目的是什么(window); 或者为什么utils 函数被指定为new。
请解释一下。
【问题讨论】:
-
让匿名(外部)函数中的代码“安全”不被
window篡改是一种有点误导的尝试。这是被误导的,因为它没有做到这一点:-) 代码应该通过this,而不是通过window。 -
我也不明白。您从哪里获得该代码,构造函数调用的函数表达式包含什么?
-
new(function(){ ... })();只是定义构造函数并一次性创建实例。与function Foo() {...}和new Foo();相同。在这里使用对象字面量可能更容易,但我不知道,因为我不知道函数的内容是什么。
标签: javascript scope closures