JavaScriptオブジェクトについてのダイナミックな選択とオブジェクト遍歴
1385 ワード
(一)動的選択方法及び属性
実際の仕事では、ある条件によって、2つの方法のうちの1つを呼び出したり、2つの属性の[2]のいずれかの上で読み書きをしたりする場合がよくあります.以下のコードはこのような状況を示している.
obj[expressionResultting Inmbersname]=obj.member Name
整数の下付き文字で配列の中の要素にアクセスした場合、四角い括弧のオペレータでダイナミックなメンバー選択を開始しました.これは、配列オブジェクト自体に数字の下付きで命名された属性(およびレングス属性)が含まれているからです.しかし、JavaScriptはあなたが点操作子(.)を使って直接これらの属性にアクセスすることを許さないので、myAray.0は文法的には不法です.
なぜ、四角い括弧の操作子は点操作子の表示法より強いですか?これは、四角い括弧の中で、メンバー名を表す内容を使って、オブジェクトのメンバーにアクセスすることができるからです.これらの内容は文面量、メンバー名が保存されている変数、名称の組み合わせ(多くの場合は文字列の綴り)、および3元のオペレータ(condition?valueIfTrue:valueIfFalse)によって実現される高速if/thenの選択が含まれています.これらの内容はすべて文字列に処理されます.そしてJavaScriptはこの文字列で対応するメンバーを探します.
JavaScriptの関数自体も対象ですので、他の値のように参照できます.表式の結果が関数である場合は、直接に括弧演算子で関数名で関数を呼び出すように呼び出すことができます.
このようなテクニックを方法に伝えるパラメータに多く使うと、混乱した括弧はコードが読みにくくなる可能性があります.この時は通常のif/else構造を使うのが賢明です.
(二)JavaScriptは対象の属性と方法を遍歴します.
JavaScriptはオブジェクトの属性と方法を巡回するためにfor in文を使用します.for in文は、JavaScriptオブジェクトを巡回します.ループごとにオブジェクトの属性または方法を取得します.
構文:
実際の仕事では、ある条件によって、2つの方法のうちの1つを呼び出したり、2つの属性の[2]のいずれかの上で読み書きをしたりする場合がよくあります.以下のコードはこのような状況を示している.
if (condition) {
myObj.method1(someArg);
} else {
myObj.method2(someArg);
}
JavaScriptは、方法と属性を動的に選択するために、四角括弧オペレータ([])を使用する簡単な文法を提供する.下記のコードに示すように、JavaScriptには2つの等価なメンバーが文法にアクセスしています.obj[expressionResultting Inmbersname]=obj.member Name
整数の下付き文字で配列の中の要素にアクセスした場合、四角い括弧のオペレータでダイナミックなメンバー選択を開始しました.これは、配列オブジェクト自体に数字の下付きで命名された属性(およびレングス属性)が含まれているからです.しかし、JavaScriptはあなたが点操作子(.)を使って直接これらの属性にアクセスすることを許さないので、myAray.0は文法的には不法です.
なぜ、四角い括弧の操作子は点操作子の表示法より強いですか?これは、四角い括弧の中で、メンバー名を表す内容を使って、オブジェクトのメンバーにアクセスすることができるからです.これらの内容は文面量、メンバー名が保存されている変数、名称の組み合わせ(多くの場合は文字列の綴り)、および3元のオペレータ(condition?valueIfTrue:valueIfFalse)によって実現される高速if/thenの選択が含まれています.これらの内容はすべて文字列に処理されます.そしてJavaScriptはこの文字列で対応するメンバーを探します.
JavaScriptの関数自体も対象ですので、他の値のように参照できます.表式の結果が関数である場合は、直接に括弧演算子で関数名で関数を呼び出すように呼び出すことができます.
このようなテクニックを方法に伝えるパラメータに多く使うと、混乱した括弧はコードが読みにくくなる可能性があります.この時は通常のif/else構造を使うのが賢明です.
(二)JavaScriptは対象の属性と方法を遍歴します.
JavaScriptはオブジェクトの属性と方法を巡回するためにfor in文を使用します.for in文は、JavaScriptオブジェクトを巡回します.ループごとにオブジェクトの属性または方法を取得します.
構文:
for(valueName in ObjectName){
//
}
このうち、valueNameは変数名であり、属性や方法の名称が保存されています.ループごとに、valueNameの値が変わります.