有没有办法制作一个setter,只要对象的属性发生变化就会更新DOM元素?
答案 0 :(得分:2)
我不相信。在没有创建setter的情况下,x
将是一个悬挂在对象上的简单jane属性,无法知道它何时发生了变化。你为什么要避开二传手呢?这是实现目标的一种非常干净的方式。
但要注意的一件小事,Object.defineProperty
,虽然更详细,但在set
和get
上得到更多支持和“胜利”:
a = {};
Object.defineProperty(a, 'x', {
get: function() {
return this._x;
},
set: function(newX) {
this._x = newX;
$("#my_element").html(newX);
}
});