面向对象三之call和apply的区别

来源:互联网 发布:安全的网络管理规范 编辑:程序博客网 时间:2024/06/08 08:54

call和apply的区别


call方法的使用:

var obj1 = {
result : 0,
add : function(a,b) {
this.result = a + b;
alert("this.result" + this.result);
}
};


var obj2 = {result : 0};

//问题 :如何让obj2调用obj1的方法,并且正常使用方法的功能
//使用call
//func.call(obj,p1,p1)
//call是函数的一个方法
//解释:让obj2调用obj1的方法,同时函数中的this指向obj2
//call将一个函数绑定到指定的对象,this指向指向这个绑定的对象
obj1.add.call(obj2,1,1); //相当于obj2.add(1,1);
console.log(obj2);//Object {result: 2}



apply方法的使用:


//apply:作用和call相同,都是把一个函数绑定到指定的对象上
//但是apply在传递函数的参数是,传递的是数组(arguments也可以)
//apply传的所有参数放到一个数组中
//作用:让其他对象的方法为你所用
obj1.add.apply(obj2,[1,1]);//相当于obj2.add(1,1)


0 0
原创粉丝点击