call 和apply?

call 和apply?

add.call(subs,5,3);
课程老师:subs --> 替换add --> 调用add方法

an.showName.call(c,",")
课程老师:an.showName --> 传递给c使用 
还是:c --> 替换showName --> 调用showName方法?

课程老师讲解普通对象时,call的概念像是用勺子吃饭,很奇怪,一直在说必须用勺子吃饭,不说为什么;

实例化对象时,成了用筷子吃饭,理解不奇怪,然后结束了

所以说是按照课程老师说的来理解,还是妮可妮可妮老师的描述理解为B.call(A, args1,args2)   A 调用 B 方法?

正在回答

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

3回答

你好,

1、add.call(subs,5,3);subs --> 替换add --> 调用add方法,但是实际上调用的还是add方法。

2、an.showName.call(c,",")是an.showName --> 传递给c使用,showName方法中的this指向了c对象,所以输出的是c对象中的name值。

3、同学说的call向勺子在吃饭以及实例化对象像筷子在吃饭,是在哪个小节视频中看到的呢,可以具体指出来,便于准确定位问题所在。

4、B.call(A, args1,args2)   如果A和B都是构造函数,是A使用了B对象中的方法。

祝学习愉快!

  • 慕前端5517794 提问者 #1
    老师,点击我要回答回复了,麻烦你看下,谢谢
    2019-06-01 22:20:16
Miss路 2019-06-02 15:06:50

同学,你好。

有的知识点不太好理解,尤其是涉及到原理的相关内容时,就会很纠结,感觉好像懂了,又好像不明白,容易陷进去。其实很多时候都是这样的,其实没有为什么,这就是规定。教你一个办法,但你感觉要绕进去的时候,就不要再思考了,就记住语法就可以了,先往后学习,过段时间再重新来学习这块的内容,就会比较顺畅了,不容易钻牛角尖。

如果帮助到了你,欢迎采纳!

祝学习愉快!

提问者 慕前端5517794 2019-06-01 22:18:15

醒醒老师你说的第3点,是我自己当时的感受。其实这个老师讲课也很好,只是在某些地方很容易让人陷进去或绕进去。

课程老师虽然讲解了实现过程,但我的疑惑为什么普通函数是这样实现调用add方法,并没有解决。或者说这就是原理,没有为什么,就是这么实现的?

总结:

普通函数  

实现过程:add.call(subs,5,3);  subs --> 替换add --> 调用add方法,subs虽然替换了add,但它调用的还是add的方法,

构造函数

实现过程:b.call(a, arg1, agr2);  b --> 传递给c使用,b方法中this指向c对象,输出c对象name值

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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