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

来源:7-1 关键词(上)

Aurora_Meteor

2020-03-17 16:57:14

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

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

写回答

2回答

好帮手慕粉

2020-03-17

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

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://img.mukewang.com/climg/5e70a84c09cc55d404160103.jpg

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

祝学习愉快~

0
hurora_Meteor
h 所以说和前面是实例化对象还是函数无关【有点晕了..好像函数也是对象是么?不过不是实例化对象?】,只和前面的那个里面有没有this有关?有this就会指向后者,没有this就还是指向前者,是这样吗?
h020-03-17
共1条回复

好帮手慕粉

2020-03-17

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

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

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

祝学习愉快~

1

0 学习 · 14456 问题

查看课程