call() 和 apply() 用法
2017-12-11 10:08
141 查看
1.call() obj1.call(obj2[,param1,param2,...])
2.apply() obj1.call(obj2[,arrArg])
3.异同相同点:两个用法类似 ,用obj2对象来代替obj1,调用obj1的方法。即将obj1应用到obj2上。 复杂来讲,就是改变obj1对象的执行上下文为obj2对象的,在obj2里执行,利用obj2对象定义的属性和方法,节省代码量,减少内存。(js里一切都是对象,包括函数)
不同点:call()可以接收任何类型的参数,而apply()只能接收数组参数
用法:copy
function add(a,b){
return a+b;
}
function sub(c,d){
return c-d;
}
function result(){
this.addValue = null;
this.subValue = null;
this.showResult=function(){
alert(this.addValue);
alert(this.subValue);
}
}
var r = new result();
r.addValue = add.call(sub,4,2); //6,将add方法应用到sub上,即sub的指针指向add方法
r.subValue = sub.call(add,4,2); //2,用add对象替换sub对象,并调用sub对象的方法
r.showResult(); //在js中函数也是一个Function对象,函数名即是对象引用
4.继承特性
[javascript] viewplain copy
function add(a,b){
return a+b;
}
function sub(c,d){
return c-d;
}
function result(){
this.addValue = null;
this.subValue = null;
this.showResult=function(){
alert(this.addValue);
alert(this.subValue);
}
}
var r = new result();
r.addValue = add.call(r,4,2); //6,r继承add函数的所有特性
r.subValue = sub.call(r,4,2); //2,r集成sub函数的所有特性
r.showResult();
相关文章推荐
- js中apply与call简单用法详解
- 关于JavaScript中apply与call的用法意义及区别 (转)
- js中call与apply用法
- JavaScript中call、apply、bind函数的用法
- JavaScript:call,apply,bind的用法
- call、apply、callee用法
- [转载]js中继承的几种用法总结(apply,call,prototype)
- js中call、apply、bind的用法
- JS中的call()方法和apply()方法用法总结
- 关于JavaScript中apply与call的用法意义及区别
- 开启Javascript中apply、call、bind的用法之旅模式
- js中call与apply用法
- 关于JavaScript中apply与call的用法意义及区别(转)
- 关于JavaScript中apply与call的用法意义及区别(转)
- call和apply用法
- apply()与call()的区别和用法
- JavaScript中apply与call的用法意义及区别
- apply、call、bind区别、用法
- 关于JavaScript中apply与call的用法意义及区别(转)
- apply和call用法