js的继承

一、js继承的概念

  减少代码量,使代码可以循环复用

二、继承的进化史

  1、封装函数来实现两个实例对象间的继承   

//原始的对象实例
var ljc = {
name:"李嘉诚",
money:"10",
house:["别墅","洋房","草房"]
}

var lzk = {
name:"李泽楷"
}
//封装函数进行继承的操作
function extend(parent,child){
for(var k in parent){
if(!child[k])
child[k] = parent[k];    
}            
}
extend(ljc,lzk);

  2、通过原型来进行继承

    //通过原型来进行继承的实现
    //父对象构造函数
    function Person() {
        this.name = "zd";
        this.age = 13;
    }
    //子对象的构造函数
    function Student() {
        this.score = 30;
    }
    //实现
    Student.prototype = new Person();
    Student.prototype.constructor = Student;

  3、如果父构造需要传递参数的时候,则会出现问题。因为在子构造函数中无法改变this的指向。

    由此我们引入call的函数调用方式

 

 //通过call的方式进行继承
        //父对象构造函数
        function Person(name,age) {
        this.name = name;
        this.age = age;
        }
        //子对象的构造函数
        function Student(score) {
        this.score = score;
        }
        //改造子构造函数
        function Student(name,age,score) {
            Person.call(this,name,age);
            this.score = score;
        }

 

   

posted @ 2019-03-11 07:22  DHR~小白  阅读(118)  评论(0编辑  收藏  举报