本demo实现了自定义一个对象,监听其某个属性的变化。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 //define data object 2 var data = {}; 3 data.name="cup"; 4 data.volume = 500; 5 data.temprature = 80; 6 7 data.updatetemp=function(temp){ 8 data.temprature = temp; 9 window.dispatchEvent(dataEvent); 10 11 } 12 13 data.onchange=function(callback){ 14 window.addEventListener('tempChanged',function(evt){ 15 callback(evt) 16 }); 17 } 18 var dataEvent = new Event("tempChanged"); 19 20 21 22 // test 23 data.onchange(function(evt){ 24 alert(evt) 25 }) 26 27 data.updatetemp(91);//alert(evt) 28 data.updatetemp(80);//alert(evt)