一个没改变this指向一个改变this指向是什么原因?
因为第一个是直接调用的函数所以不会指向里面的subs?而第二个是调用了一个实例化的对象的方法所以指向里面的c?
第二个调用的时候里面的c可以不是实例化对象而是换成一个函数吗?
源自:JS面向对象
7-1 关键词(上)
40
收起
正在回答
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指向,让其指向后者,使后者可以使用前者的方法:
同学如果实在理解不了,可以先记住,用法是固定的。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星