在IE中不能实现,FF中可以用setter。所以你最好设计为以下形式。setValue(b)
{
  // 赋值。
  // 触发事件。
}
getValue(b)
{
  // 取值。
}

解决方案 »

  1.   

    最好从OOD上改善,考虑封装这个变量
    示例:<script type="text/javascript">
    /*定义类*/
    function Flag()
    {
      var flag ;
      var method;
      
       this.SetMethod =function(value){
            method = value;
       } 
      
        this.SetValue = function(value){
           flag = value;
           if(flag==true && method){eval(method)} 
      }
       this.GetValue = function(){
           return flag;
      }
    }/*以下是测试用例*//*为True时执行的方法*/
    function RunWhenFlagIsTrue(param)
    {
        alert('flag is true:' + param);
    }var flag =new Flag();  //创建Flag类实例
    flag.SetMethod ('RunWhenFlagIsTrue("Hehe")'); //设置其值为true时执行的方法
    flag.SetValue (true);  //通过SetValue 方法来更改bool变量
    alert(flag.GetValue());//通过GetValue 方法获取bool变量
    </script>
    思路如此,自己改进
      

  2.   

    可以,JAVASCIPRT权威指南 里面有一个方法
      

  3.   

    比如有很多事件会改变这个变量,那么该如何监听呢,上面的很多回答都是面向过程的,没有解决实际问题,加入变量的改变是不可预测,不知道什么函数什么时候就将其改变了,那么该如何监听呢?楼上提到的settimeout倒是一个可行的办法,就是使用起来的体验不太舒服。