call 和apply
这两个对比,第一次 用add 取代了subs , 但是第二图里,因为实例化后,cat 取代了animal , 这里怎么判断什么时候能取代,什么时候不能呢
源自:JS面向对象
7-1 关键词(上)
30
收起
正在回答 回答被采纳积分+1
1回答
WittChen
2020-05-10 10:43:08
同学你好,我就讲call吧,因为apply和call只是传参的形式不同,原理相同。
像call第一个参数是一个对象的引用,JavaScript中的函数本质就是一个对象如上图,我们使用实例an调用showNameh方法,使用call替换掉了方法中的this,使这个this从an变成了c因此我们打印的是cat,至于你说的什么时候能用什么时候不能用,这个取决于我们写的代码逻辑,因为你的c中有name属性,因此可以弹出值,要是你cat中什么都不写,都没有name属性,要吗弹出undefined,要吗可能之后的程序会报错,这个完全取决于我们写的代码时怎样的
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星