Call and Apply in JavaScript
来源:互联网 发布:软件外包公司介绍ppt 编辑:程序博客网 时间:2024/05/18 15:29
Call 和 Apply 方法可以用来代替另一个对象调用一个方法,改变this指向。
1.call
-call([thisObj[,arg1[, arg2[, [,.argN]]]]])
-调用一个对象的一个方法,以另一个对象替换当前对象。
-call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
具体方法实现见如下示例:
1 <script type="text/javascript"> 2 function PersonA(){ 3 this.name = 'a' ; 4 this.say = function(){ 5 console.log('A:' + this.name) 6 } 7 } 8 9 function PersonB(){10 this.name = 'b';11 // console.log('B:' + this.name);12 }13 14 var a = new PersonA();15 var b = new PersonB();16 17 a.say.call(b);18 </script>
其中b对象想要调用a中的say方法,则可通过call来实现。其中call的第一个参数为传入给当前对象的对象b。[后面的参数都是传递给当前对象的参数。]
运行结果:
浏览器输出: A:b
结果表明 call 方法将 this的指向改为了b对象。
2.apply
-apply([thisObj[,argArray]])
-应用某一对象的一个方法,用另一个对象替换当前对象。
-如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
apply方法的功能与call一致,不同的地方在于之后的参数,call方法是将参数一个个带进去,而apply是用数组等方式。
如: a.say.call(b,arg1,arg2,...)
a.say.apply(b,[arg1,arg2,...])
0 0
- Call and Apply in JavaScript
- Javascript call and apply
- JavaScript call and apply
- the different between call and apply in javascript
- javascript apply and call方法的区别
- prototype-apply and call
- call and apply
- call and apply
- js--call and apply
- bind , call and apply
- javascript call apply
- javascript apply vs call
- javascript call() apply()
- JavaScript的call、apply
- javascript call()和apply()
- JavaScript:prototype&apply&call
- JavaScript中的call、apply
- javascript apply call详解
- JS之字符串与JSON转换
- 《深入理解Java虚拟机》笔记
- MySql 分页
- 设计模式之动态代理模式
- Mybatis多参传递的四种解决方案
- Call and Apply in JavaScript
- Protobuf的简单介绍、使用和分析
- 信息孤岛
- 电子之滤波电容选择
- POJ百炼-2806-公共子序列
- UNIX SOCKET编程简介
- 图像去雾-dehaze-defog
- 字符串加密
- Redis缓存Mysql技术实现