使用Object函数创建
1 | var person = new Object(); |
缺点:大量的重复代码
使用对象字面量创建
1 | var person = { |
缺点:大量的重复代码
使用工厂模式创建
1 | function createPerson(name, age){ |
优点:解决了代码量大的问题
缺点:生成的对象缺乏识别性
使用自定义构造函数模式创建
1 | function Person(name, age){ |
优点:对象有了识别性
缺点:sayName这个方法每次都会生成一次,浪费内存
使用原型模式创建
1 | function Person(){} |
优点:将共有的属性和方法抽到了原型上,避免了重复声明
缺点:生成的对象都是一致的,没有了自定义的属性
使用原型模式和构造函数创建
1 | function Person(name, age){ |
优点:将共有的属性和方法抽到了原型上,自定义的属性通过构造函数重新声明,这是目前使用最广泛、认同度最高的方法