面向对象的继承

作者: ferrint | 来源:发表于2017-02-27 15:00 被阅读7次

    面向对象继承问题:

    • 属性继承:构造函数伪装
    • 方法继承:原型链

    我们先写一个简单的对象

        function Person(name,age) {
            this.name = name;
            this.age = age;
        }
        Person.prototype.showName = function () {
            console.log("名字:" + this.name);
        };
        Person.prototype.showAge = function () {
          console.log("年龄:" + this.age);
        };
    

    实现属性的继承

        function Worker(name,age,job) {
            // this->new 出来的Worker
            // 构造函数伪装:继承父级的构造函数
            Person.call(this,name,age);   //  继承属性
            Worker.prototype.showJob = function () {
                this.job = job;
            };
        }
    

    实现方法的继承

        // 原型链   通过原型来继承父级的方法
        // Worker.prototype = Person.prototype;  // 继承方法
        for(var i in Person.prototype){
            Worker.prototype[i] = Person.prototype[i];
        }
    
        Worker.prototype.showJob = function () {
            alert(this.job);
        };
    

    实例化测试

        var ost = new Worker("张正阳","30","工程师");
        ost.showJob();
        var ant = new Person("张纪中","40","导演");
        ant.showJob();
    

    相关文章

      网友评论

        本文标题:面向对象的继承

        本文链接:https://www.haomeiwen.com/subject/hqpzwttx.html