介绍JS 里面的watch
watch函数其实是有三个变量的,第一个参数是需要监视的对象,第二个参数是在监视对象发生变化时需要调用的函数,实际上watch还有第三个参数,它在默认情况下是false。
当第三个参数是false时,其实watch函数监视的是数组的地址,而数组的内容的变化不会影响数组地址的变化,所以watch函数失灵了。
用法(主要是讲监听数组)
1、当要监听数组的时候,需要把第三个参数设置为true。这样watch监听的就是数组的内容,而不是地址
2、监听对象时,可以忽略第三个参数
1、
var array = [{name:"p1"},{name:"p2"}];
//这个是普通的js监听
//这个是angular的监听(其实angular的双向数据绑定就是利用了watch,一直监听着)
$scope.$watch("array",function(oldValue,newValue){
//you can do what you want
},true);
2、
var object ={name:"p3"};
//这个是普通的js监听
object .watch("name",function(oldValue,newValue){
})
//事件监听
var person = document.getElementById('btn');
person.click = function() {
alert("hello world!");
}
//或者
document.getElementById("btn").onclick = function(){
alert("hello world!");
}
//这个是angular 的监听
$scope.$watch("object",function(oldValue,newValue){
//you can do what you want
})
object.watch(prop, handle)
概述:监听一个对象的某个属性是否发生变化,如果发生了变化,则立即执行回调函数
object.unwatch(prop)
概述:取消监听事件
更多关于javascript 的事件可以查看
http://www.jb51.net/article/93752.htm