我一直在试验如何将方法和变量附加到具有自我调用匿名函数的对象上,并遇到一些我不明白的行为。是什么导致了这种行为? (Closures&References)
我在函数前定义变量并将其作为参数传入,方法附加到引用,但在外部,name
保持未定义状态。
var name;
(function(exports) {
exports = {};
exports.method = function() {
// do stuff
};
})(name);
alert(name === undefined); // true
但是,当变量初始化函数外部,而不是正确的属性附加为我所期望的内部。
var name2 = {};
(function(exports) {
exports.method = function() {
// do stuff
};
})(name2);
alert(name2 === undefined); // false
alert(name2.method); // method is defined
为什么?
我在回答自己的问题时没有问题,但为什么你在问题中写下'我不明白' – bugwheels94
他很快就学会了......? – Teemu
是的,我在完成问题后就明白了。 –