加入收藏 | 设为首页 | 会员中心 | 我要投稿 驾考网 (https://www.jiakaowang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

javascript中apply和call方法的用处及区别说明

发布时间:2023-10-10 15:11:22 所属栏目:教程 来源:
导读:一、call和apply的说明

1、call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性。既然作为
一、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的当前作用对象。
 
 

(编辑:驾考网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章