This question already has answers here:
Listening for variable changes in JavaScript
                                
                                    (19个回答)
                                
                        
                6年前关闭。
            
        

我有一个全局变量,仅当用户输入某些输入时才将其设置为true,并且我希望能够触发一个函数。其中一些输入不是通过处理程序提供的,因此我无法使用JQuery change()函数。

关于如何解决此问题的任何建议?

最佳答案

当值更改时,请使用自定义获取方法执行其他操作:

myGlobal=true;


(function(){
  var shadow=myGlobal;
Object.defineProperty(
   window,
   "myGlobal",
   {
     get: function() {return shadow;},
     set: function(v){alert( 'myGlobal is now ' + v); return shadow=v;}
   }
);

}());

myGlobal=false;
myGlobal=true;


这在较旧的IE中有效,并且与Object.watch()和polyfills相比,不会造成什么打击。

10-06 00:48