This question already has answers here:
Listening for variable changes in JavaScript
(19个回答)
6年前关闭。
我有一个全局变量,仅当用户输入某些输入时才将其设置为true,并且我希望能够触发一个函数。其中一些输入不是通过处理程序提供的,因此我无法使用JQuery change()函数。
关于如何解决此问题的任何建议?
这在较旧的IE中有效,并且与Object.watch()和polyfills相比,不会造成什么打击。
(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