将 get/set 函数附加到 js 中的对象属性

2023-11-21

我本质上有一个对象:

var foo = function() {
  this.setting = false;
  this.refresh = function() { ... };
}

let a = new foo();
a.setting = true; // a.refresh() is triggered

我需要随时触发刷新.setting被写入。我觉得这与bind,但我不太明白。


您可以使用 JavaScript getter 和 setter。看有关该主题的 MDC 文档 and John Resig 关于该主题的博客文章。请注意,并非所有浏览器都支持此功能。

var Foo = function()//constructor
{
   this._settings = false;//hidden variable by convention
   this.__defineGetter__("settings", function(){
     return _settings;//now foo.settings will give you the value in the hidden var
   });

   this.__defineSetter__("settings", function(s){
      _settings = s;//set the hidden var with foo.settings = x
      this.refresh();//trigger refresh when that happens
   });

   this.refresh = function(){
      alert("Refreshed!");//for testing
   }
}

var a = new Foo();//create new object
a.settings = true;//change the property
//a.refresh() is triggered

Try it!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 get/set 函数附加到 js 中的对象属性 的相关文章

随机推荐