1
屬性的直接訪問,我發現,很多JavaScript開發者創建一個簡單的返回屬性這樣的方法:方法,返回屬性VS在JavaScript
function Obj (prop) {
this.prop = prop; // public
}
Obj.prototype.getProp = function() {
return this.prop;
};
雖然道具是公共的,可以這樣來訪問:
var a = obj.prop;
此外,我發現,訪問對象屬性與方法比直接訪問它(在Firefox)
var a, b,
obj = new Obj(1);
a = obj.prop;
// ~6ns on Chrome
// ~5ns on Firefox
b = obj.getProp();
// ~6ns on Chrome (no difference)
// ~730ns on Firefox (122x slower...)
慢121倍
所以我的問題是:我們應該總是創建返回屬性的方法,或者我們可以直接訪問屬性嗎?那是反模式嗎?
*所有現代瀏覽器*支持定義getter和setter方法(使用['Object.defineProperty'](https://developer.mozilla.org/en-US/ docs/JavaScript/Reference/Global_Objects/Object/defineProperty#Browser_compatibility)以及較早的'__defineGetter__' /'__defineSetter__')。 –
謝謝,我會試試看。 – neeh