工厂模式
function CreatePerson (name1,age1) {
var obj=new Object();
obj.name=name1;
obj.age=age1;
obj.showName=function () {
alert(this.name);
}
obj.showAge=function () {
alert(this.age);
}
return obj;
}
var person1=CreatePerson('张三',22);
var person2=CreatePerson('李四',23);
person1.showName();
alert(person1.showName==person2.showName)
混合模式(原型模式 + 构造函数模式)
function CreatePerson (name1,age1) {
this.name=name1;
this.age=age1;
}
CreatePerson.prototype.showName=function () {
alert(this.name);
}
CreatePerson.prototype.showAge=function () {
alert(this.age);
}
var person1=new CreatePerson('王五','25');
var person2=new CreatePerson('陆六','29');
person1.showName();
person2.showAge();
alert(person1.showName==person2.showName)
js继承
function A (name1) {
this.name=name1;
}
A.prototype.showName=function () {
alert(this.name);
}
var obj1=new A('shanks');
function B (name2,age2) {
A.call(this,name2);
this.age=age2;
}
B.prototype.showAge=function () {
alert(this.age);
}
for(var i in A.prototype){
B.prototype[i]=A.prototype[i];
}
var obj2=new B('shanks2','33');
obj2.showName();
obj2.showAge();