老师检查对吗

老师检查对吗

<!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>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,this没有固定的指向,要看谁调用了函数,函数中的this就会指向谁。记住一句话,this指向函数的调用者。

1.例如看如下调用,Animal通过call调用,把当前this的指向传递给了Animal。即Cat中的this指向谁,此时Animal的this指向的就是谁。

http://img1.sycdn.imooc.com//climg/5eddad6a0996ba5105050076.jpg

Cat在实例化的时候,相当于实例化对象c调用。即Cat中this指向的就是c,所以此时Animal中this就会指向c。

http://img1.sycdn.imooc.com//climg/5eddae0409a8dc9303330050.jpg

(后面Dog中使用apply调用与这里是同理的,就不重复说了哦)

2.代码中,还单独实例化了Animal。此时Animal中的this就会指向实例化对象a。

http://img1.sycdn.imooc.com//climg/5eddae5509eef5a404490080.jpg

祝学习愉快!


好帮手慕码 2020-06-06 18:00:56

同学你好,效果正确。继续加油,祝学习愉快~

  • 提问者 宝慕林3013065 #1
    老师这里的this指的是谁啊
    2020-06-08 09:16:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师