参考知乎的一遍文章

常用方式

原型继承

  1. var person = {
  2. friends : ["Van","Louis","Nick"];
  3. };
  4. var p1 = Object.create(person);
  5. p1.friends.push("Rob");
  6. var p2 = Object.create(person);
  7. p2.friends.push("Style");
  8. console.log(person.friends); //"Van,Louis,Nick,Rob,Style"

等价于

  1. var person = {
  2. friends : ["Van","Louis","Nick"];
  3. };
  4. var p1 = [];
  5. p1.__proto__ = person
  6. p1.friends.push("Rob");
  7. var p2 = []
  8. p2.__proto__ = person
  9. p2.friends.push("Style");
  10. console.log(person.friends); //"Van,Louis,Nick,Rob,Style"

就是利用了原型链的方式, 注意一下缺点

通过call apply的方法继承.

es6的extend继承