我有这个,它的工作原理:
myObject.myFunction = (function() {
var closure = 0;
return function(value) {
if (arguments.length) {
closure = value;
} else {
return closure;
}
}
})();
它同时充当 getter 和 setter,因此调用 myFunction(3.14) 将设置闭包,调用 myFunction() 将获得闭包的值。
问:我可以把它分解成一个更冗长的例子(而不是荒谬的)吗?我想做的是这样的:
myObject.myFunction1 = myFunction2;
myObject.myFunction1();
function myFunction2() {
var closure = 0;
return function(value) {
if (arguments.length) {
closure = value;
} else {
return closure;
}
}
}
我只是试图将 JavaScript 分解成尽可能小的块,以便我的学生可以集中精力。
编辑1:
哦等等:我根本不需要 myFunction2。