码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 的几种继承方式

时间:2019-03-07 00:55:02      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:function   console   原型   prototype   script   属性   xiaomi   原型链   构造   

JavaScript 的几种继承方式

  • 原型链继承
  • 构造函数继承
  • 组合继承 (伪经典继承)
  • 原型式继承
  • 寄生式继承
  • 寄生组合式继承
  • ES6 extends 继承

1, 原型链继承

原理是将父对象的属性和方法通过prototype进行引用

function people() {
    this.flag = true;
    this.func = function() {
        console.log("this is people func");
    }
}
function boy() {
    this.sex = "boy";
}
boy.prototype = new people();
var peo1 = new boy();
console.log( peo1.flag );     // true
console.log( peo1.func() );   // this is people func
console.log( peo1.sex );      // boy

缺点:

  • 实例对象的属性被共享
  • 无法向父类的方法传递参数

2, 构造函数继承

构造函数继承主要在继承对象中使用 call()、apply() 完成。

function people(name) {
    this.name = name || "xiaoming";
}

// 对people进行继承
function boy() {
    people.call(this, "wangming");
    this.age = 18;
}
var peo1 = new boy();
console.log( peo1.name ); //wangming
console.log( peo1.age ); //18

缺点:

  • 函数无法复用
  • 父类的方法对子类不可见

3, 组合继承 (伪经典继承)

夜已深,明日待续...

JavaScript 的几种继承方式

标签:function   console   原型   prototype   script   属性   xiaomi   原型链   构造   

原文地址:https://www.cnblogs.com/miku561/p/10487017.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!