【JavaScript】关于原型继承

1、 使用原型继承实现对象系统:
     “ 对象系统”的继承特性,有三种实现方案,包括基于类(  class-based  )、 基于原型(  prototype-based  )和基于元类( metaclass-based  )。 JavaScript  没有采用我们像java、c++的类继承体 系,而是使用原型继承来实现对象系统。因此  JavaScript  没有“类   Class  ), 而采用一种名为“构造器  (Constructor) ”的机制来实现类的某些功用。
2、 原型继承系统的特性:
     1) 原型是一个对象;
     2) 属性访问时, 子类对象 如果 没有,则访问其原型的成员列表。
3、正常回溯原型链的解决方案:
/**
     * 正确维护constructor属性 ,以便回溯原型链
     */
     function MyObject() {
     }
     function MyObjectEx() {
     this.constructor = arguments.callee;
     // or, this.constructor = MyObject Ex;
     // ...
     }
     /**
     * 原型链
     */
     MyObjectEx.protot ype = new MyObject();

4、内部原型链与构造器原型链:
      简单地说, 内部原型链是   JavaScript   的原型继承机制所需的。而通过 constructor   prototype   所维护的构造器原型链,则是用户代码需要回溯时才需 要的。
      子类实例不能用delete 从父类继承来的成员 也就是说,子类必须具有父类的特性。 即使你可以重写成员,改变它的实现,但在界面  ( Interfaces)) 上必然与父类一致。
      为了达成这种一致性,且保证它不被修改。   JavaScript   使对象实例在内部 执有一个 proto 内部 属性,并且不允许用户访问。这样,用户可以出于任何目 的来修改   constructor   属性,而不用担心实例与父类的一致性。

你可能感兴趣的:(JavaScript,prototype,Constructor,对象系统)