一个没改变this指向一个改变this指向是什么原因?

一个没改变this指向一个改变this指向是什么原因?

因为第一个是直接调用的函数所以不会指向里面的subs?而第二个是调用了一个实例化的对象的方法所以指向里面的c?

第二个调用的时候里面的c可以不是实例化对象而是换成一个函数吗?

正在回答

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

2回答

同学你好,关于同学的问题回答如下:

1、call()方法的作用是调用一个方法,并改变其this的指向。第一个参数是传递this的,这里就是把subs的this传递给了add,那么add中如果有this,指向的就是subs。代码中只是一个运算,没有使用到this,所以看不出来效果。这是个反例。

2、在c调用函数时,先是调用了an的showName方法,然后让showName方法中的this指向c ,这是c就可以调用showName方法了,也就是c借用了showName方法。

3、通俗的来说,就是后面的要借用前面的方法,而call的作用就是改变前者的this指向,让其指向后者,使后者可以使用前者的方法:
http://img1.sycdn.imooc.com//climg/5e70a84c09cc55d404160103.jpg

同学如果实在理解不了,可以先记住,用法是固定的。

祝学习愉快~

  • Aurora_Meteor 提问者 #1
    所以说和前面是实例化对象还是函数无关【有点晕了..好像函数也是对象是么?不过不是实例化对象?】,只和前面的那个里面有没有this有关?有this就会指向后者,没有this就还是指向前者,是这样吗?
    2020-03-17 18:51:16
好帮手慕粉 2020-03-17 20:29:03

同学你好,关于同学的问题回答如下:

1、是的,无关,函数也是对象。

2、也是可以这样理解的。

祝学习愉快~

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

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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