Если у меня есть приложение с кучей геттеров и сеттеров, то я думаю, что мне нужно использовать закрытие, чтобы сохранить значение сеттера, не так ли?Использование прототипа для определения геттера/сеттера
Вот что у меня есть до сих пор, но я думаю, что эти два метода должны возвращать функции (замыкания). Я не думаю, что я должен использовать this.local.result, потому что они конфликтуют.
myApplication = function(){
this.local = {};
};
myApplication.prototype.myFirstMethod = function(){
if (arguments.length) {
this.local.result = arguments[0];
} else {
return this.local.result;
}
};
myApplication.prototype.mySecondMethod = function(){
if (arguments.length) {
this.local.result = arguments[0];
} else {
return this.local.result;
}
};
var app = new myApplication();
app.myFirstMethod(1);
result = app.myFirstMethod();
console.log(result);
Но будет не аргументы ключевых слов спутать по функции «return function()» и считайте, что нет никаких аргументов? –
№ Возвращаемая функция действует как любая другая функция, только разница в том, что она имеет доступ к переменной данных. Закрытие возвращает объект функции, а не выполняет его. – levi
Хммм. Я получаю Uncaught TypeError: Не могу установить свойство «myFirstMethod» неопределенного. Я не понимаю, зачем здесь нужен IIFE. –