(function (WINDOW) { 閉包
var APP = { 函數
doc: WINDOW.document, this
message: 'hellomoto', spa
Event: { 對象
registerEvent: function (obj) { 內存
ele = obj.doc.getElementById('ele_id'); get
ele.onclick = function () { io
var o = obj; console
console.log(o.message); function
};
}
}
};
APP.Event.registerEvent(APP);
}(this));
一個面向應用(或服務)的對象APP被即時函數封裝,這裏只是舉個簡單的例子,目的在於說明
好馬不回頭策略:
一、在進入registerEvent函數時,帶的參數是APP對象,這樣在該函數局部就能夠訪問任何其想
訪問的數據或方法了,不須要出registerEvent這個函數,好馬不回頭;
二、在ele.onclick的閉包函數中,經過局部變量O來引用obj即APP對象,這樣在該函數局部就可
以訪問任何其想訪問的數據或方法了,不須要出閉包函數,好馬不回頭;
三、APP對象是在堆內存中,只有1份存儲;
四、管見所及,謝謝~