老师看代码 经典继承不写 Student.prototype = new People()的话就不能用父类的方法,只能用属性,经典继承本身就是这样的吗

老师看代码 经典继承不写 Student.prototype = new People()的话就不能用父类的方法,只能用属性,经典继承本身就是这样的吗

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 借用构造函数(在子类构造函数的内部调用超类构造函数,注意用call()指定上下文),实现伪造对象/经典继承
        // 利用原型链实现继承 子类拥有符类的所有属性和方法
        function People(name, age, sex) {
            this.name = name;
            this.age = age;
            this.sex = sex;
        }
        People.prototype.sayHello = function () {
            console.log('你好我是' + this.name + '我的年龄是' + this.age + '我是' + this.sex + '生');
        };
        People.prototype.sleep = function () {
            console.log(this.name + 'zzzz');
        };
        // 子类也要被定义
        function Student(name, age, sex, school, studentNumber) {
            People.call(this,name, age, sex)
            // this.name = name;
            // this.age = age;  程序更简洁
            // this.sex = sex;
            this.school = school;
            this.studentNumber = studentNumber;
        }
        // ***实现继承的关键语句!!!!
        Student.prototype = new People();  // 经典继承要不要写这一句话?不写的话People里面的方法Student就不能用 下面被注释掉的语句会出错

        // Student的实例
        var xiaogang = new Student('小刚', 12, '男', '艾利斯顿商学院', 10086);
        console.log(xiaogang.name);
        console.log(xiaogang.school);
        // xiaogang.sayHello();  这里不注释掉的话程序出错
        // xiaogang.exam();

        // Peopel实例
        var laozhao = new People('张继你', 55, '男');
        laozhao.sayHello();

    </script>
</body>
</html>


正在回答 回答被采纳积分+1

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

1回答
好帮手慕慕子 2022-05-11 09:48:49

同学你好,对于你的问题解答如下:

1、理解有误差,并不是不能用父类的方法,而是,经典继承只能继承父类实例上的属性和方法,并不能继承父类prototype上的属性和方法

2、经典继承指的就是借用构造函数实现的继承,不用写Student.prototype = new People(); 这句代码,如果添加上Student.prototype = new People(); 那么就是下节课老师要讲解的组合式继承。

3、跟着课程安排继续往后学习,会发现老师讲解了多种继承方式,每种继承方法都有自己的优缺点,开发中结合实际需求,灵活应用某一种方式实现效果即可。

祝学习愉快~    

  • 本节课所学的就是经典继承吗?继承都分哪些

    2022-09-18 09:29:44
  • 同学你好,本节课所学习的借用构造函数实现继承,具体的继承方式,可以结合小节名称以及课程讲解,自行总结下,加深理解和记忆,示例:

    https://img1.sycdn.imooc.com//climg/63267c3d09dd277409800850.jpg

    祝学习愉快~

    2022-09-18 10:03:01
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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