call与apply
来源:互联网 发布:网络拓扑探测工具 编辑:程序博客网 时间:2024/06/05 14:51
一、call和apply的说明
1、call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性。既然作为方法的属性,那它们的使用就当然是针对方法的了,这两个方法是容易混淆的,因为它们的作用一样,只是使用方式不同。
2、语法:foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments) == this.foo(arg1, arg2, arg3);
3、相同点:两个方法产生的作用是完全一样的。
4、不同点:方法传递的参数不同。
二、实例代码
复制代码代码如下:
<script type="text/javascript">
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);
</script>
三、代码解释(即说明apply和call作用)
1、实例代码定义了两个函数A和B,A中包含flag属性和tip属性(这个属性赋值一个函数),B中有一个flag属性。
2、分别创建A和B的对象a和b。
3、无论是a.tip.call(b);和a.tip.apply(b);运行的结果都是弹出B。
4、从结果中可以看出call和apply都可以让B对象调用A对象的tip方法,并且修改了this的当前作用对象。
1 0
- call与apply函数
- call与apply
- JS Call()与Apply()
- JS call与apply
- JS Call()与Apply()
- js apply 与 call
- 2.2-call与apply
- call apply 与 bind
- call() 与 apply()区别
- js call与apply
- call与apply区别
- call 与 apply
- JavaScript call 与 apply
- apply与call
- call()、apply()与bind()
- call与apply
- call与apply
- call与apply
- AlarmManager后台一直周期性的执行(解决API大于19的问题)
- 截至目前投递的公司
- linux设置时间
- OnScrollChangeListener()API23问题解决方法
- Map遍历
- call与apply
- JAVA知识点(类、方法、构造器、权限、修饰符、数据类型等知识点)
- 最大连续区间和算法、
- 高度平衡二叉搜索树(AVL)的插入与删除
- [交易平台及行情软件] Zipline框架初探(上)
- Struts2拦截器精解
- hdu1236
- NumberChange
- 毫秒数转化为日期时间格式