构造函数的八种方法
1.Object构造函数模式
使用方式:先创建空对象,再添加属性/方法
适用场景:起始时不确定对象内部的数据
缺点:语句太多
2.对象字面量
使用方式:使用{}创建对象,同时指定属性/方法
适用场景:起始时对象内部数据确定
缺点:如果创建多个对象,有重复代码
3.工厂模式
使用方式:通过工厂函数动态创建对象并返回
适用场景:需要创建多个对象
缺点:对象没有具体的类型,都是Object类型
4.自定义构造函数模式
使用方式:自定义构造函数,通过new创建实例对象
适用场景:需要创建多个类型确定的对象
缺点:每个对象都有相同的数据,浪费内存
5.构造函数+原型的组合
使用方式:自定义构造函数,属性在函数中初始化,方法添加到原型上
适用场景:需要创建多个类型确定的对象
6.动态原型模式
动态原型函数模式把所有信息都封装在了构造函数中,在构造函数中初始化原型,又保持了同时使用构造函数和原型的优点。
如果不用if判断的方式直接在原型上添加方法,那么每一次new一个实例对象的时候都会去重写原型,浪费内存空间,而如果加了判断那么在原型只会在第一次实例话对象的时候就生成了,以后每一次new实例均不会再重写原型对象。
7.稳妥构造函数模式
所谓稳妥对象,指的是没有公共属性,而且其方法也不引用this的对象。稳妥对象最适合在一些安全环境中。
8.es6 class
与组合构造函数非常相似,语法更加精炼简洁。