Javascript:如何不断监视变量值

Con*_*nor 10 javascript variables webkit monitor

如何不断检查变量值.例如:

if(variable == 'value'){
    dosomething();
}
Run Code Online (Sandbox Code Playgroud)

如果我经常循环它或其他东西,这将有效,但是一旦变量设置为该值,是否有一种有效的触发方法?

Mik*_*uel 10

Object.watch:

监视为属性分配值并在发生时运行函数.

所有浏览器的Object.watch()?讨论跨浏览器的方法,Object.watch在本机不支持它的浏览器上.


小智 8

Object.defineProperty(Object.prototype, 'watch', {
    value: function(prop, handler){
        var setter = function(val){
            return val = handler.call(this, val);
        };
        Object.defineProperty(this, prop, {
            set: setter
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

如何使用:

var obj = {};

obj.watch('prop', function(value){
    console.log('wow!',value);
});

obj.prop = 3;
Run Code Online (Sandbox Code Playgroud)

  • 你能解释一下这是如何工作的吗?它似乎工作得很好,但我不是真的关注如何:) (3认同)

Cha*_*ndu 5

使用 setInterval:

var key = ''
setInterval(function(){
  if(key == 'value'){
    dosomething();
  }
}, 1000);
Run Code Online (Sandbox Code Playgroud)