您的当前位置:首页正文

面向对象(八)继承___ 04借用构造函数实现继承

来源:花图问答

title: 面向对象(八)继承___ 04借用构造函数实现继承 # 文章页面上的显示名
date: # 文章生成时间,一般不改
categories: # 文章分类目录,可省略
- 面向对象
tags: # 文章标签,可省略
- 面向对象
- 基于原型面向对象的继承 # 个数不限,单个可直接跟在 tags 后面


借用构造函数实现继承

<script>
    function Person(name,age){
        this.name = name;
        this.age = age;
    };
    function Boy(bookName,name,age){
        this.bookName = bookName;
        //Person.call(this,"悟空",600);  //借用构造函数
        Person.call(this,name,age);
    }

    //创建对象
    var boy = new Boy("水煮三国","悟空",600);
    var boy02 = new Boy("大话西游","云风",40);
    console.log(boy);
    console.log(boy02);
</script>

核心代码:Person.call(this,name,age);

在子构造函数中调用父构造函数,由this来执行Person函数
思考:调用Person构造函数,会产生对象吗?
答案:不会。以普通方式调用Person函数,和使用new关键字调用构造函数是不一样的

特点:可以获得父构造函数中的实例属性,解决了原型链继承传参的问题