zoukankan      html  css  js  c++  java
  • 三种方法实现js中类的继承

    首先第一种方法,通过拓展Object来实现继承:

    //定义一个父类
     function Parent(add){
            this.add = add;
        }
    //定义一个子类
        function Child(name){
            this.name = name;
        }
    //定义一个全局都可以用的继承方法
    Object.prototype.extend = function(ParentObj){
            for(var i in ParentObj){
                this[i] = ParentObj[i]
            }
        };
    //使用我们的方法进行继承
    Child.extend(Parent('China'));
    //实例化对象(初始化数据)
    var obj = new Child('lemon')
    //此时我们就可以调用父类中的方法或属性了
    console.log(obj.add);
    //输出结果:China

    第二种方法,通过call或apply来实现继承,两者用法基本相同

        //父类
        function Parent(add){
            this.add = add;
        }
        //子类
        function Child(name){
            this.name = name;
            //call方法实现继承
            Parent.call(this,'China');
            //apply方法实现继承
           Parent.apply(this,['China']);
    
    /*tip:call方法与apply方法选其一即可,两者使用方法基本一致,在传参的时候略有不同!*/
        }
    //实例化对象
    var obj = new Child('lemon')
    console.log(obj.name+':'+obj.add)

    第三种方法,通过prototype实现继承

     
        function Parent(add){
            this.add = add;
        }
    
        function Child(name){
            this.name = name;
        }
    //通过把子类的原型对象改为父类中的对象来实现继承
        Child.prototype = new Parent('China');
    
        var obj = new Child('lemon');
    
        console.log(obj.name+':'+obj.add);

    你学会了吗?有问题欢迎提出来哟!

  • 相关阅读:
    IT名词备忘录——汇编
    逆转链表的实现
    编写安全的代码的一些技巧
    extern c 谈
    回调函数
    职场必备八个黄金句型
    CString类的用法介绍和自己动手写的CString类
    61条面向对象设计的经验原则(转贴)
    sprintf的用法
    VisualStudioVS2010统计代码行数
  • 原文地址:https://www.cnblogs.com/ningmeng666/p/6489991.html
Copyright © 2011-2022 走看看