js中对象的定义与其它面向对象语言不同,它的对象被描述为:一组无序属性的集合,其属性可以包含基本类型值、对象或者函数。
而其它面向对象语言中的对象,通常指代可以通过类创建多个的,具有相同属性和方法的对象。
如果我们想在js中创建第二种对象,需要做什么?先定义它的构造函数。
1. 几种创建具有相同属性名与方法对象的方式
1)工厂模式
2)构造函数
3)原型模式
4)组合构造函数与原型
5)寄生构造函数
6)稳妥构造函数
es6: class, class是构造函数的语法糖
2. 继承的方式
1)原型链继承-让sub的原型指向super的实例
2)借用构造函数继承-调用call方法
3)混合继承-调用call方法,并且让sub的原型指向super实例,优点是可以让里面的引用类型属性比如数组,各自是各自的。
4)改良:寄生混合继承,让sub的原型指向super实例,不再调用super构造方法,而是使用Object.create()
5)手写Object.create(),就是在里面创建一个空方法F,临时让F的原型等于参数,再调用F构造函数。
es6: class + extend
标签:总结,继承,创建对象,JS,对象,原型,属性,super,构造函数 From: https://www.cnblogs.com/nanimono/p/17183455.html