1.工厂模式
function createPerson(name, age, job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.sayName = function () {
alert(this.name);
}
return o;
}
- 使用方式
var gby = createPerson("gby", 28, "architect");
var dyx = createPerson("dyx", 28, "web");
2.构造函数(缺点:每个方法需要在原型上构建一遍,重复)
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
this.sayName = function () {
alert(this.name);
}
}
- 使用方式及测试
var person1 = new Person('wxx', 29, 'taobao');
var wl = new Person('wl', 39, 'free');
console.log("person1:constructor:", person1.constructor);
//检测对象类型
console.log(person1 instanceof Object);
console.log(person1 instanceof Person);
3.原型模式(原型上的引用类型如果被修改–所有的实例也会被修改–违背了每个实例需要有自己的独有属性的原则);
第1种写法
function Pro() {
};
Pro.prototype.name = "Nick";
Pro.prototype.age = 29;
Pro