call() 和 apply() 的作用以及区别
2017-07-31 19:24
495 查看
call() 和 apply() 是预定义的函数方法。
它们作用一样——改变上下文,即this的指向。只是使用方式不同。
语法:
foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments)
== this.foo(arg1, arg2, arg3);
apply方法——能劫持另外一个对象的方法,继承另外一个对象的属性.
Function.apply(obj,args)方法能接收两个参数,实现将函数作为另外一个对象的方法运行
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args–>arguments)
call方法——与apply的作用相同,只不过是参数列表不一样.
Function.call(obj,[param1[,param2[,…[,paramN]]]])
obj:这个对象将代替Function类里this对象
params:这个是一个参数列表
第一个参数传入的都是对象,区别在于第二个参数。
call 和 apply 都可以让B对象调用A对象的tip方法,并且修改了this的当前作用对象.
它们作用一样——改变上下文,即this的指向。只是使用方式不同。
语法:
foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments)
== this.foo(arg1, arg2, arg3);
apply方法——能劫持另外一个对象的方法,继承另外一个对象的属性.
Function.apply(obj,args)方法能接收两个参数,实现将函数作为另外一个对象的方法运行
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args–>arguments)
call方法——与apply的作用相同,只不过是参数列表不一样.
Function.call(obj,[param1[,param2[,…[,paramN]]]])
obj:这个对象将代替Function类里this对象
params:这个是一个参数列表
第一个参数传入的都是对象,区别在于第二个参数。
function A(){ this.flag = 'A'; this.tip = function(){ alert(this.flag); }; } function B(){ this.flag = 'B'; } var a = new A(); var b = new B(); //a.tip.call(b); a.tip.apply(b);//弹出'B'
call 和 apply 都可以让B对象调用A对象的tip方法,并且修改了this的当前作用对象.
相关文章推荐
- 函数的call、apply以及bind的作用与区别
- 【JavaScript】中的call 和apply的用途以及区别研究
- javascript中apply和call方法的作用及区别说明
- JavaScript的函数call和apply的区别、以及bind方法
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- 构造函数与构造函数的继承以及call和apply的区别
- javascript中apply和call方法的作用及区别说明
- js---js中的继承方法call、bind、apply,以及三者之间的区别总结。
- javascript中apply和call方法的作用及区别说明
- js中call、apply、bind区别以及个别用例
- JS中 call和apply的区别和作用
- call、apply、bind的用法以及区别
- JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- javascript中apply方法和call方法的作用以及prototype.js中的应用
- JavaScript中的call 和apply的用途以及区别
- callee,caller,call()以及apply()的用法理解以及从中引申出的关于作用域跟this的理解
- 构造函数与构造函数的继承以及call和apply的区别
- call() 、 apply() 、bind()方法的作用和区别!
- JavaScript中的call和apply的用途以及区别