有人能详细解释一下这段js代码的作用吗?
(function (window) {
var test = window['test'] = {};
test.utils = new(function(){ ... })();
})(window);
我知道这个函数不是全局范围的。我知道它创建一个名为test的变量,该变量指向window对象中的一个空对象属性。我也知道utils是test的属性。
我不明白最后一部分的目的(window);或者为什么utils函数被指定为new。
请解释一下。
window
的篡改。但这种做法是错误的,因为它并没有达到预期的效果 :-) 代码应该传递this
而不是window
。 - Pointynew(function(){ ... })();
只是定义构造函数并立即创建一个实例。这与function Foo() {...}
和new Foo();
相同。在这里使用对象字面量可能更容易,但我无法确定函数的内容。 - Felix Klingwindow
对象时添加属性。第一次是在某个JavaScript视频教程中,我想知道这是从哪里来的。 - Moritz Roessler