编程爱好者之家
function creatPerson(name, age) {
var obj = new Object();
obj.name = name;
obj.age = age;
obj.sayName = function() { window.alert(this.name);
};
return obj;
}function Person(name, age) { this.name = name; this.age = age; this.sayName = function() { window.alert(this.name);
};
}function Person() {
}
Person.prototype = { constructor : Person, name : "Ning", age : "23", sayName : function() { window.alert(this.name);
}
};大家可以看到这种方法有缺陷,类里属性的值都是在原型里给定的。
function Person(name, age) { this.name = name; this.age = age;
}
Person.prototype = { constructor : Person,
sayName : function() { window.alert(this.name);
}
};将构造函数方法和原型方法结合使用是目前最常用的定义类的方法。这种方法的好处是实现了属性定义和方法定义的分离。比如我可以创建两个对象person1和person2,它们分别传入各自的name值和age值,但sayName()方法可以同时使用原型里定义的。