老师检查对吗
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <!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积分~
来为老师/同学的回答评分吧