我本质上有一个对象:
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(使用前将#替换为@)