call()和apply()的区别

解决问题:

1、call()和apply()区别在哪里;

2、call()和apply()分别使用在哪种情况下;



详解:

apply:方法劫持另外一个对象的方法,继承另外一个对象的属性。

function.apply(object,arguments)能接收两个参数,一个是其中运行函数的作用域,另一个是参数数组。

 function person (name,age) {
        this.name = name;
        this.age = age;
    }
    function student (name,age,sex) {
        person.apply(this,arguments);
        this.sex = sex;
    }
    var result = new student("John","25","女")
    var str ="name:"+result.name+"\n"+"<br>"+"age:"+result.age+"\n"+"<br>"+"sex"+result.sex+"\n"
    document.write(str)

person.apply(this,arguments)中,this的作用域指向的是student,且继承了person.name等的属性,添加属性sex,继而形成了str的结果。

call()的使用应该为:

person.call(this,name,age),这样就行了。


总结:若果参数是数组形式的则选用apply(),如果是直接指定参数则选用call()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值