javascriptを引用して対象の書き方を定義する(整理)

4515 ワード

参照
アーロンの
javascript定義対象の書き方(整理)
javascriptは対象のいくつかの簡単な方法を定義します.
1.コンストラクタ方式、全部の属性と対象の方法は構造方法において定義されます.
利点:動的な伝達パラメータ
短所:オブジェクトを作成するごとに同じメソッド関数オブジェクトを作成し、メモリを大量に使用します.
function User1(name, password) {
this.name = name;
this.password = password;
this.login = function(name,password){
if(this.name == name && this.password == password) {
return true;
}else {
return false;
}
};
}
2.原型の方式は、対象の属性と方法の定義をすべて対象のプロトタイプに記入します.
利点:オブジェクトを作成するたびに同じprototypeを使用します.重複メモリは使用されません.
短所:構造パラメータを動的に伝達できませんでした.
function User2() {

}
User2.prototype.name = "prototype name";
User2.prototype.password = "prototype password";
User2.prototype.login = function(name,password){
if(this.name == name && this.password == password) {
return true;
} else {
return false;
}
};


var = {};
    .prototype. 1= 1 ;
    .prototype. 2= 2 ;
    ……;
    .prototype. 1= function() {
      
    };
    .prototype. 2= function() {
      
    };
    ……;

(1)       ;
(2)       “ .prototype.” ;
(3)       , ;
(4)       , 。
(5)       function(){} 。

var data = {};
   data.prototype. name ="Vicky”;
    data.prototype. age =20;
    data.prototype. eat = function() {
       alert(‘I wanna eat meat’);
    };
    data.prototype. sleep= function() {
       alert(‘I wanna sleep’);

};
3.構造と原型の混合方式、属性定義を構造方式に記入し、方法をprototypeに記入する.
利点:construct及びprototype方式の利点を総合して、構造パラメータを動的に伝達でき、方法関数オブジェクトも一つしか作成できません.
短所:関数は対象外に書いてありますが、対象に向けた考えにはあまり合わないです.
function User3(name,password) {
this.name = name;
this.password = password;
}
User3.prototype.login = function(name,password) {
if(this.name == name && this.password == password) {
return true;
} else {
return false;
}
};
4.ダイナミックプロトタイプ:判断属性を加えて、そのオブジェクトが作成されているかどうかを判断します.作成されている場合は、メソッドは構築されていません.
利点:原型関数をオブジェクト定義に書く
短所:継承はサポートされていません.
function User4(name,password) {
this.name = name;
this.password = password;
if(typeof User4.__initialized == "undefined") {
User4.prototype.login = function(name,password){
if(this.name == name && this.password == password) {
return true;
} else {
return false;
}
};
User4.__initialized = true;
}
}
5、JSON方式/オブジェクト直接量
フォーマット:varオブジェクト名={             変数1:変数1の値、             変数1:変数1の値、             ……,            関数1:function(){                関数            },            関数2:function(){                関数            }//Note:最後のカンマはIEとの互換性を取り除くために取り除くべきです.       大かっこに直接変数や関数を記入します.(2)       オブジェクトの内容と値はコロンで区切られ、ペアで表示されます.(3)       に含まれる変数または関数の間をコンマで区切る(4)       関数はfunction(){}の大括弧の中に書く必要があります.例:var  オブジェクト名={       name:    「Vicky」、       メッセージ:    26,       eat:function(){              alert(‘I wanna’  eat meat’)       },       sleep:function(){              alert(‘I wanna sleep’);        }};注:同様の方法は、匿名クラスの例としても知られている.     {    index:'/'    reg:new RegExp('^/.*')    css:"コメント"上の方法でクラスを作成しましたが、変数は与えられていません.
6、create方式
この方式はProttype JavaScriptコンポーネントライブラリを利用しています.フォーマット:       varオブジェクト名=クラス.create()       Object.exted(対象名.prototype)            変数1:変数1の値、            変数1:変数1の値、             ……,            関数1:function(){                     関数                },            関数2:function(){                     関数            },……});説明:(1)       オブジェクトの作成には、Prottypeライブラリのクラスc.reat()関数が使用されます.(2)       オブジェクトの内容はProttotypeライブラリのObject.exted()関数を使って拡張されます.(3)       拡張されたオブジェクトはObject.exted関数に入る時に必ずprototypeを持参してください.(4)       拡張内容は大かっこに含まれています.JSON方式の定義フォーマットと完全に同じです.例:       var data=Class.creat();       Object.exted(dta.prototype)       name:「Vicky」       age:20、       eat:function(){              alert(‘I wanna eat meat’);       },       sleep:function(){              alert(‘I wanna sleep’);       }       });
      JSオブジェクトの定義は他にもあります.上のような組み合わせで定義することもできます.これはJSが動的言語としての自由性を示しています.JSオブジェクトの作成は正規の方法です.var d 1=new Data();       JSオブジェクト変数の参照方法は2つあります.(1)       ポイントコード方式引用、例えば、data.name.(2)       配列方式は、例えば、data[name]を参照します.