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);

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

  • 相关阅读:
    VS中Debug和Release两个版本的区别
    Activex、OLE、COM、OCX、DLL之间的区别
    解决 C/C++ 程序执行一闪而过的方法
    调用规范stdcall、cdecl、fastcall、thiscall 、naked call的汇编理解
    Windows的MAX_PATH
    Servlet学习笔记(1)
    Eclipse使用JDBC小案例
    Oracle DB 总结(SQL)
    利用JS写一个计算平方的网页
    CSS部分语法1
  • 原文地址:https://www.cnblogs.com/ningmeng666/p/6489991.html
Copyright © 2011-2022 走看看