&工場モデルコンストラクタJS-プロトタイプ&
ファクトリパターン
機能(工場出荷時の機能)によってオブジェクトを作成するには
function createPerson(name,age){
var obj={
name:name,
age:age,
setName:function(name){
this.name=name;
}
};
return obj; //return一个object
}
createPerson("sam",20);
カスタムコンストラクタ
function Person(name,age){ //构造函数首字母要大写
this.name=name;
this.age=age;
this.setName=function(name){
this.name=name;
};
}
var person1=new Person("sam",20);
工場モデルコンストラクタの違い
- オブジェクトは、オブジェクト・ファクトリーモード復帰ある、いかなる特定のタイプは存在しません
- コンストラクタは、オブジェクトの特定の型を返す場合
protorypeの使用
プロパティを宣言していないステートメント
Person.prototype.phone=null; //接上面代码,在Person没有phone的情况下用peototype声明
var person2=new Person("jack",21);
person2.phone="25698546";
alert(person2.phone); //正常输出
動的メソッド声明
function Person(name,age){
this.name=name;
this.age=age;
this.say=function(){
alert("miao~");
};
}
var p1=new Person("sam",20);
p1.say();
ミャオ族は、上記の場合にのみ言う - プロトタイプを使用することができます
function Person(name,age){
this.name=name;
this.age=age;
//先不写say方法
}
Person.prototype.say=null; //声明say方法
var p1=new Person("sam",20);
p1.say=function(){ //设置p1的say方法
alert("miao~");
};
p1.say();
var p2=new Person("gou",2);
p2.say=function(){ //设置p2的say方法
alert("wang~");
};
p2.say();