老师检查对吗
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> //补充代码 function Animal(name,number){ this.name = name; this.number = number; this.getInfo = function(){ alert('动物:' + this.name + ',' + '数量:' + this.number + '只'); } } function Cat(name,number){ Animal.call(this,name,number); } var a = new Animal('猴子',2); a.getInfo(); var c = new Cat('猫',18); c.getInfo(); function Dog(name,number){ Animal.apply(this,[name,number]); } var d = new Dog('狗',20); d.getInfo(); </script> </body> </html>
17
收起
正在回答
2回答
同学你好,this没有固定的指向,要看谁调用了函数,函数中的this就会指向谁。记住一句话,this指向函数的调用者。
1.例如看如下调用,Animal通过call调用,把当前this的指向传递给了Animal。即Cat中的this指向谁,此时Animal的this指向的就是谁。
Cat在实例化的时候,相当于实例化对象c调用。即Cat中this指向的就是c,所以此时Animal中this就会指向c。
(后面Dog中使用apply调用与这里是同理的,就不重复说了哦)
2.代码中,还单独实例化了Animal。此时Animal中的this就会指向实例化对象a。
祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星