为了解决多个类似对象声明的问题,我们可以使用一种叫做工厂模式的方法,这个方法就是为了解决实例化对象产生大量重复的问题
工厂模式:
缺点:识别问题,根本无法搞清楚他们到底是哪个对象的实例
构造函数:
构造函数没有new Object,但是后台会自动var obj=new Object
this相当于obj
构造函数不需要返回对象的引用,他是后台自动返回的
规范;
构造函数也是函数,但函数名第一个字母大写
必须new 构造函数名()
必须使用new 操作符
原型模式:
缺点:不能进行传参
原型中的引用类型被共享了
组合+构造
动态原型模式:
优点:
当第一次调用构造函数时候,run()方法不存在,然后初始化原型。当第二次调用,就不会初始化,并且第二次创建新对象,原型也不会再初始化了。这样既得到了封装,又实现了原型方法的共享,并且属性都保持独立
注意:
不可以再使用字面量的方式重写原型,因为会切断实例和原型之间的联系
寄生构造函数=工厂模式+构造函数模式