我有两个变量:
var trafficLightIsGreen = false;
var someoneIsRunningTheLight = false;
我想在两个变量符合我的条件时触发一个事件:
if(trafficLightIsGreen && !someoneIsRunningTheLight){
go();
}
假设这两个 bool 值可以随时改变,我如何触发我的 go()
当它们根据我的条件改变时的方法?
最佳答案
当 JavaScript 中的给定值发生更改时,不会引发任何事件。您可以做的是提供一组函数来包装特定值并在调用它们来修改值时生成事件。
function Create(callback) {
var isGreen = false;
var isRunning = false;
return {
getIsGreen : function() { return isGreen; },
setIsGreen : function(p) { isGreen = p; callback(isGreen, isRunning); },
getIsRunning : function() { return isRunning; },
setIsRunning : function(p) { isRunning = p; callback(isGreen, isRunning); }
};
}
现在您可以调用此函数并链接回调来执行go():
var traffic = Create(function(isGreen, isRunning) {
if (isGreen && !isRunning) {
go();
}
});
traffic.setIsGreen(true);
关于javascript - 在javascript中,如何在变量值更改时触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10638769/