js里對象構(gòu)造函數(shù)Object的getter和setter方法

每個對象實例的proto 等于這個對象的構(gòu)造函數(shù)的原型。
即:

obj.__proto__ = obj.constructor.prototype

可以通過重寫Object的getter和setter方法來實現(xiàn)在設(shè)值和取值時候的更改甚至是回調(diào)鉤子。如雙向綁定的實現(xiàn)方法之一就是如此,可以在給屬性直接賦值的時候,進行必要的dom操作,實現(xiàn)雙向綁定。但是兼容性不好。

ooo.__defineSetter__('name', function(){alert('操作dom試試')});
不過這個方法已經(jīng)建議廢棄轉(zhuǎn)而使用更標準的初始化對象時的方法或者[
Object.defineProperty()
即:
var obj = { 
  val:100, 
  get getval(){ return this.val; }, 
  set setval(x){ this.val = x; } 
}
或者(可以通過以下屬性做權(quán)限設(shè)置)
Object.defineProperty(o, 'b', { 
  get: function() { return bValue; }, 
  set: function(newValue) { 
    bValue = newValue; 
  },
  enumerable: true, 
  configurable: true
});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容