把《JS高程》上创建对象的方法记录下来,以加深印象。
原始模式
var obj = new Object();
obj.name = "Mary";
obj.age = "20";
工厂模式
function createPerson(name, age) {
var o = new Object();
o.name = name;
o.age = age;
o.sayName = function () {
alert(this.name);
}
return o;
}
var person1 = createPerson("Mary", "20");
var person2 = createPerson("Bob", "15");
构造函数模式
function Person(name, age) {
this.name = name;
this.age = age;
this.sayName = function () {
alert(this.name);
}
}
var person1 = new Person("Mary", "20");
var person2 = new Person("Bob", "15");
原型模式
function Person() {
}
Person.prototype.name = "Mary";
Person.prototype.age = "20";
Person.prototype.sayName = function () {
alert(this.name);
};
var person1 = new Person();
var person2 = new Person();
person1.sayName(); //Mary
person2.sayName(); //Mary
所有使用new操作符创建出来的实例都共享通过prototype绑定的所有属性和方法。