采用构造函数存储实例属性,采用原型模式存储公共属性。
这就是实际中最常用的创建自定义类型的最佳实践。
function Person(username, password){
this.username = username;
this.password = password;
};
Person.prototype = {
constructor: Person,
places: ['希腊', '罗马', '西安', '开罗']
}
var person1 = new Person('luohao', '01248');
var person2 = new Person('logic', '84210');
console.log(person1.username + " : " + person1.places.toString());
console.log(person2.username + " : " + person2.places.toString());
学过Java的你,难道不感觉奇怪吗?
Person对象的共有属性和私有属性竟然分开了,为什么不可以归为一处呢?
function Person(username, password){
this.username = username;
this.password = password;
if(typeof this.places != 'Array') {
Person.prototype.places = ['希腊', '罗马', '西安', '开罗'];
}
};
var person1 = new Person('luohao', '01248');
var person2 = new Person('logic', '84210');
console.log(person1.username + " : " + person1.places.toString());
console.log(person2.username + " : " + person2.places.toString());
这就是实际中最常用的创建自定义类型的最佳实践。
function Person(username, password){
this.username = username;
this.password = password;
};
Person.prototype = {
constructor: Person,
places: ['希腊', '罗马', '西安', '开罗']
}
var person1 = new Person('luohao', '01248');
var person2 = new Person('logic', '84210');
console.log(person1.username + " : " + person1.places.toString());
console.log(person2.username + " : " + person2.places.toString());
学过Java的你,难道不感觉奇怪吗?
Person对象的共有属性和私有属性竟然分开了,为什么不可以归为一处呢?
function Person(username, password){
this.username = username;
this.password = password;
if(typeof this.places != 'Array') {
Person.prototype.places = ['希腊', '罗马', '西安', '开罗'];
}
};
var person1 = new Person('luohao', '01248');
var person2 = new Person('logic', '84210');
console.log(person1.username + " : " + person1.places.toString());
console.log(person2.username + " : " + person2.places.toString());