我有一个设置,我可以根据需要加载许多模块,每个模块在更改特定变量时都有特定的加载需求。我需要类似jquery触发器的东西,但是当变量发生变化时会运行,如下所示:
var x = 0; // no triggers
// something happens
x = 1; // will trigger a function
x = 2; // will trigger the same function
感谢。
答案 0 :(得分:4)
也许您可以创建一个包含set_x
方法的对象来更改变量的值。除了更改变量之外,此方法还可以调用任何关联的触发器。
然后,您将使用此新方法而不是直接设置x
:
my_obj.set_x( 2 ); // Will trigger a function
答案 1 :(得分:3)
这个怎么样?
var x = {
value: 10
}
var set = function(obj, new_value) {
obj.value = new_value;
/* call whatever your heart desires here */
}
所以你可以这样做:
set(x, 2);
// now x.value = 2