监听js变量方法

JavaScript013

监听js变量方法,第1张

在日常工作中我们经常会遇到某个变量依赖另一个变量的问题,但我们有时会像下边这样 当向上面这种情况时,其实我们想的是变量b随着变量a去变化,但事实上并非如此,我们需要去监听变量a,当a发生变化时,我们需要b随之发生变化。这时有一个比较好的处理方法,其实类似于vue的双向数据绑定原理,利用Object.defineProperty(),本身对对象的每个属性进行监听,其实就相当于给对象的每个对象设置一个setter和getter,当对对象进行操作时,我们同时激活相应的函数,在这个情境下,我们可以将本身改变的变量a作为对象中的这样一个属性或者一个属性去承载这个变量,当a发生变化时,我们可以触发set函数,这样我们把依赖a的b的表达式写在set函数中,这样就做到了完美的监听 这样就完成了真正的随之改变,就好像vue的双向绑定原理

改变变量的值肯定也是通过js实现的吧,那就直接在后面跟上该变量改变后要触发的时间就可以了吧……可以单独写一个方法,用来执行这个操作,如boolean_b=true//该变量functiontest(b){_b=bdoEvent()//改变后出发的事件}

用setInterval每隔一段时间就检查,会有延迟,把时间设置小点

耗费cpu, 效率低,有延迟,但编码简单

使用观察者模式,看看触发变量发生变化的条件是什么,给观察者发消息