var foo = (function() {
var proxy = {},
warning = false;
proxy.warn = function(msg) {
if (!warning) {
warning = true;
alert(msg);
}
return this; //For the purpose of method chaining we return proxy object.
}
function func() {
alert(warning); //This is a private function relative to foo.
}
return proxy;
}());
foo.warn(); //will alert
foo.warn(); //will not alert since warning has been set to true
因为没有使用new关键字,所以我对这里的实例化感到困惑,谁持有警告的值?根据警示生命的范围,是否有任何泄漏。学习JavaScript变量作用域和对象实例
谢谢。
@Joel:我已经更新了代码,以显示为什么我需要这样的私有变量。谢谢。 – Jeff 2009-12-18 00:57:45