在javascript中,如何在变量值改变时触发事件? [英] In javascript, how to trigger event when a variable's value is changed?

查看:152
本文介绍了在javascript中,如何在变量值改变时触发事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个变量:

var trafficLightIsGreen = false; 
var someoneIsRunningTheLight = false;

当两个变量符合我的条件时,我想触发一个事件:

I would like to trigger an event when the two variables agree with my conditions:

if(trafficLightIsGreen && !someoneIsRunningTheLight){
    go(); 
}

假设这两个布尔值随时可以改变,我怎么能触发我的 go()根据我的条件改变的方法?

Assuming that those two booleans can change in any moment, how can I trigger my go() method when they change according to the my conditions?

推荐答案

在Javascript中更改给定值时,不会引发任何事件。你可以做的是提供一组函数来包装特定的值,并在调用它们来修改值时生成事件。

There is no event which is raised when a given value is changed in Javascript. What you can do is provide a set of functions that wrap the specific values and generate events when they are called to modify the values.

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 ()

Now you could call this function and link the callback to execute go():

var traffic = Create(function(isGreen, isRunning) {
  if (isGreen && !isRunning) {
    go();
  }
});

traffic.setIsGreen(true);

这篇关于在javascript中,如何在变量值改变时触发事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆