apply()和call()的区别,我知道是参数的区别

apply()和call()的区别,我知道是参数的区别

function sum(num1,num2) {
    return num1+num2;
}
 
function applySum1(num1,num2) {
 return sum.apply(this,arguments);
}
 
function applySum2(num1,num2) {
 return sum.apply(this,[num1,num2]); 
}
 
console.log(applySum1(10,10));//20
console.log(applySum2(10,10));//20

sum.apply(this,arguments);这段话的理解,我有点理解不好

是说将sum函数的指向指向了applySum1,还是applySum1指向了sum,这里的指向到底指的是什么?

指向他的原型的方法上么?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,老师给你写了一下备注,参考如下:

http://img1.sycdn.imooc.com//climg/5ebb5a9709544ece09830567.jpg

另外,这个是第二个阶段的知识点,如果同学不理解,建议去复习一下课程,以巩固所学知识哦。地址如下:

https://class.imooc.com/lesson/791#mid=19912

(apply在关键字这节讲解的)

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

好帮手慕夭夭 2020-05-12 18:46:06

同学你好,理解的不对。不是让sum函数的this指向applySum1,也不是指向什么原型,是把applySum1当前作用域的this指向传递给sum。通俗的说,就是applySum1中的this指向谁,sum中的this就指向谁了。例如如下中,applySum1是在全局调用的,指向的就是window。那么sum中的this也就会指向window了。

http://img1.sycdn.imooc.com//climg/5eba7e2009c709e205250323.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 满舰饰v #1
    老师还是有点没听懂,,, function sun(a,b) { return a+b; } function sunapply(a,b) { return sun.apply(this,[a,b]) } console.log(sunapply(1,2)) 这里的this到底指的是什么,前面的sum的作用又是啥? 能说一下这段代码的执行逻辑么、、、我好笨哦
    2020-05-12 19:24:05
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师