js实现继承

Posted 龍四

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js实现继承相关的知识,希望对你有一定的参考价值。

一、使用构造函数实现"继承 

参考:Javascript面向对象编程(二):构造函数的继承

 

 function extend(Child, Parent) {

    var F = function(){};  // 利用空对象作为中介   F是空对象,所以几乎不占内存。

    F.prototype = Parent.prototype;

    Child.prototype = new F(); 

    Child.prototype.constructor = Child;  //不会影响Parent

    Child.uber = Parent.prototype; // 备用

  }

 

二、非构造函数的继承

参考:Javascript面向对象编程(三):非构造函数的继承

 

   // 浅拷贝

  function extendCopy(p) {

    var c = {};

    for (var i in p) { 
      c[i] = p[i];
    }

    c.uber = p;

    return c;
  }

 

       // 深拷贝

  function deepCopy(p, c) {

    var c = c || {};

    for (var i in p) {

      if (typeof p[i] === ‘object‘) {

        c[i] = (p[i].constructor === Array) ? [] : {};

        deepCopy(p[i], c[i]);

      } else {

         c[i] = p[i];

      }
    }

    return c;
  }

以上是关于js实现继承的主要内容,如果未能解决你的问题,请参考以下文章

JS- 继承

js中的继承

js实现继承

JS继承之原型继承

JS继承之原型继承

JS继承以及继承的几种实现方式总结