本文基于《JavaScript高级程序设计(第3版)》归纳整理而成。
虽然Object 构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码
1、工厂模式
- 原理:使用函数将对象创建接口封装起来
- 举例:
function creatObj(name, age) {
var obj = Object();
obj.name = name;
obj.age = age;
obj.sayName = function() {
console.log(this.name)
}
return obj;
}
var object1 = creatObj('lili', 10);
object1.sayName();//'lili'
var object2 = creatObj('tom', 20);
object2.sayName();//'tom'
- 优缺点:
这种模式下,creatObj
与object1
并无直接关系,因此无法判断出对象的类型。
2、构造函数模式
- 原理:创建一个构造函数,通过实例化构造函数来创建对象
- 举例:
function Person(name, age) {
this.name = name;
this.age = age;
this.sayName = function() {
console.log(this.name)
}
}
var person1 = new Person('lili', 10