我已經得到了這一點,它的工作原理:突圍封閉解釋給了unitiated
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可言。
我不能完全掌握這裏的實際問題。 – JJJ
是的,我有問題。 –
在我提出的解決方案中,當我調用myObject.myFunction1()時,它返回一個函數。所以我真的應該說myFunction3 = myObject.myFunction1() –