一、字面量
var per1 = {
name: "张三",
age: 30,
sex: "男",
sayName: function() {
console.log("我的名字是:" + this.name);
}
}
二、工厂模式
function CreatePerson(name, age, sex) {
var p = new Object();
p.name = name;
p.age = age;
p.sex = sex;
p.sayName = function() {
console.log("我的名字是:" + this.name);
}
return p;
}
优缺点分析:优缺点分析
三、构造函数
function CreatePerson(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
this.sayName = function() {
console.log("我的名字是:" + this.name);
}
}
优缺点分析:优缺点分析
四、原型模式
function Person() {
}
Person.prototype = {
constructor: Person,
name: "LiBai",
age: 60,
job: "诗人",
friends: ["杜甫", "白居易"],
sayName: function() {
console.log(this.name)
}
};
优缺点分析:优缺点分析
五、构造函数与原型混合
function Person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
this.friends = ["小猫", "小狗"];
}
Person.prototype = {
constructor: Person,
sayName: function() {
console.log("我的名字是:" + this.name);
}
}
优缺点分析:优缺点分析