根据此:
(function(window) {
window.MyClass1 = function(val) {
this.val = val;
console.log(this.val);
};
}(window));
(function() {
window.MyClass2 = function(val) {
this.val = val;
console.log(this.val);
};
}());
(function() {
this.MyClass3 = function(val) {
this.val = val;
console.log(this.val);
};
}());
(function() {
MyClass4 = function(val) {
this.val = val;
console.log(this.val);
};
}());
new MyClass1('works1');
new MyClass2('works2');
new MyClass3('works3');
new MyClass4('works4');
在 jsFiddle 上
MyClass1、MyClass2、MyClass3 和 MyClass4 之间有什么区别?它们不都以完全相同的方式附加到 window 对象上吗? 最佳实践是什么,为什么?
MyClass3
会附加到被调用的function
的this
引用中,但这不一定是全局对象(例如在requirejs模块内部)。因此,使用this
可能会有些棘手。 - Nikos M.