多くの場合、このようなクラスを作成し、new を使用してオブジェクトを作成します。
function Person(name,age){
this .name=name;
this.age=age;
Person.prototype={
setName : function(n){this.name=n;},
getName : function (){return this.name;}
}
var p = new Person('jack',25)
これに変更します
function person(name,age){
//条件(this== window) または (this==self) または (this.constructor!=Object) に変更されます。
if(!this.setName){
return new Person(name,age); >}
this.name=name;
this.age=age;
person.prototype={
setName : function(n){this.name=n;},
getName : function( ){return this.name;}
}
var p = Person('jack',25);
このクラスには次の内容があることに注意してください。
return new Person(name,age);
}
クラスのインスタンス (オブジェクト) を作成する方法もあります。次のようになります
この作成方法 (関数呼び出し) は、上記の方法よりも "new_"、new およびスペースが少なく、実際にはクラス内で new です。この方法では、オブジェクトが作成されるたびに 4 バイトを削減できます。
クラス内の if 判定条件が this.name などの非プロトタイプ属性に置き換えられた場合。プログラムはエラーを表示します: 再帰が多すぎます
if(!this.name){
新しい人(名前,年齢)を返す
}
この.名前=名前;
これ。 age=年齢;
}
person.prototype={
setName : function(n){this.name=n;},
getName : function(){return this.name;}
}
var p = 人('jack',25)
;