javascript - 在javascript中,如何在变量值更改时触发事件?

标签 javascript

我有两个变量:

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/

相关文章:

javascript - 以字符串格式在页面源上执行 javascript 选择器

javascript - 内部和外部带括号的闭包之间的区别

java - 弹出窗口 - 执行操作并关闭

javascript - ng hide,如何有条件地显示带有 url 扩展名的 Angular 内容

javascript - 如何访问 $http 调用的 .success 中的类属性?

javascript - 如何在 Chrome 浏览器中触发 deviceready 事件(尝试调试 phonegap 项目)

javascript - child 在 Angular 2 中监听父事件

javascript - 当我在 codeigniter 中使用 jquery 发出警报时没有任何反应

javascript - 如何一次删除大量的mongodb集合?

javascript - AddEventListener : onmousedown