一、字面量创建对象
var Person = {
name : "zhangsan",
say : function (){
console.log(this.name)
}
}
二、构造函数模式
function Person(name, age) {
this.name = name;
this.age = age;
this.say = function() {
console.log(this.name, this.age)
}
}
var student = new Person('学生', 20);
var teacher = new Person('老师', 30);
student.say(); // 输出:学生 20
teacher.say(); // 输出:老师 30
三、原型模式
// 使用原型的好处是,通过构造函数创建的实例对象,都可以共享绑定在原型上的属性和方法
function Person() {}
Person.prototype.name = '名称';
Person.prototype.age = 20;
Person.prototype.say = function() {
console.log(this.name, this.age)
}
var person1 = new Person();
person1.say(); // 输出:名称 20
var person2 = new Person();
person2.say(); // 输出:名称 20
四、工厂模式
function createPerson(name, age) {
var obj = new Object();
obj.name = name;
obj.age = age;
obj.say = function() {
console.log(this.name, this.age)
}
return obj;
}
var student = createPerson('学生', 20);
var teacher = createPerson('老师', 30);
student.say(); // 输出:学生 20
teacher.say(); // 输出:老师 30