ホームページ  >  記事  >  ウェブフロントエンド  >  hidden new を使用して object_jquery を作成する

hidden new を使用して object_jquery を作成する

WBOY
WBOYオリジナル
2016-05-16 18:08:521176ブラウズ

多くの場合、このようなクラスを作成し、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);


このクラスには次の内容があることに注意してください。


コードをコピー コードは次のとおりです。 if(!this.setName){
return new Person(name,age);
}


クラスのインスタンス (オブジェクト) を作成する方法もあります。次のようになります


コードをコピー コードは次のとおりです: var p = Person(' jack',25);

この作成方法 (関数呼び出し) は、上記の方法よりも "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)

;
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。