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
Я запутался в создании экземпляра здесь, так как не используется новое ключевое слово, которое удерживает значение предупреждения? Существует ли какая-либо утечка здесь с точки зрения срока действия предупреждения.Изучение области видимости и объекта объекта JavaScript
Спасибо.
@Joel: Я обновил код, чтобы показать, почему такая приватная переменная необходима в моем случае. Благодарю. – Jeff