老师检查对吗
<!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 星