javascript创建对象常用方法是组合使用构造函数跟原型和动态原型法。
组合使用构造函数跟原型法,将综合利用构造函数法和原型法的优点,实例属性在构造函数中定义,而所有实例共享的属性和方法则在原型中定义,实现代码复用。
而动态原型法是将上面组合法中的原型部分的代码封装在构造函数里,优点是一样的。
//组合使用构造函数跟原型
function Person1(name,age,job){
this.name=name;
this.age=age;
this.job=job;
}
Person1.prototype={
constructor:Person,
sayname:function(){
console.log(this.name);
}
}
var a=new Person1('xiaoming',20,'gongren');
a.sayname();
//动态原型方法
function Person(name,age,job){
this.name=name;
this.age=age;
this.job=job;
if(typeof this.sayname!=="function"){
Person.prototype.sayname=function(){
console.log(this.name);
};
}
}
var b=new Person('xiaohong',20,'gongren');
b.sayname();
console.log(Person.prototype);