js里对象构造函数Object的getter和setter方法

每个对象实例的proto 等于这个对象的构造函数的原型。
即:

obj.__proto__ = obj.constructor.prototype

可以通过重写Object的getter和setter方法来实现在设值和取值时候的更改甚至是回调钩子。如双向绑定的实现方法之一就是如此,可以在给属性直接赋值的时候,进行必要的dom操作,实现双向绑定。但是兼容性不好。

ooo.__defineSetter__('name', function(){alert('操作dom试试')});
不过这个方法已经建议废弃转而使用更标准的初始化对象时的方法或者[
Object.defineProperty()
即:
var obj = { 
  val:100, 
  get getval(){ return this.val; }, 
  set setval(x){ this.val = x; } 
}
或者(可以通过以下属性做权限设置)
Object.defineProperty(o, 'b', { 
  get: function() { return bValue; }, 
  set: function(newValue) { 
    bValue = newValue; 
  },
  enumerable: true, 
  configurable: true
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容