0224
0224
8月前 · 1 人阅读

js的OOP

在es6中,对象是一个无序属性集合 可以是基本值 对象 函数
数据属性:只读属性不可删除不可枚举
访问属性:getter setter
构造函数:new 来生成对象
函数与原型 prototype
一种最简单的继承 利用原型链来实现继承 子类.prototype=new 父类的实例
创建自定义类型性的最佳方式 :构造函数+prototype
构造函数中的是每一个实例都特有的属性
prototype中 放置的是公共的方法

继承

1、原型链继承
2、寄生组合式继承

 function object(obj) {  //返回原型为obj的没有实例属性的对象
         function Fun() {}
         Fun.prototype=obj;
         return new Fun();
    }
    function inheritPrototype(subType,superType) {
        //建立原型链,继承父类原型属性 用自定义函数object函数  避免父类实例具有独特的属性  切掉多余的父类实例属性
        var prototype=object(subType.prototype)  
        prototype.constructor=subType  //保证构造器的正确
        subType.prototype=prototype;
    }
    function subType(arg1,arg2) {
        superType.call(this,arg1)  //继承父类的属性的分别的值
        this.attr=value;
    }
    inheritPrototype(subType,subType)   //实现了寄生组合
收藏 0
关键词: javascript
评论