2012-01-02 4 views
2

forループは、左側の変数にオブジェクトプロパティを割り当てます。なぜ(in for)ループ内でオブジェクトのプロパティの割り当てが制限されていないのですか?どのユースケースですか?

'ループの本体の内側'でのみ使用しないでください。私は恒久的な割り当て(明らかにスクリプトの完了前に)はわからない?

誰にでもユースケースが表示されますか?

以下のスクリプトは、オブジェクトプロパティを配列にコピーします。ループ(中のため)以内に制限されないで

var obj = {a:1,b:2}; 
var arr = []; 
var x = 0; 

for(arr[x++] in obj) // shouldn't be temporary assignment? 
{}     // empty body 

for(new_values in arr){  
console.log(arr[new_values]) // i can fetch values here. 
} 

//a 
//b 

答えて

4

なぜプロパティの割り当てをオブジェクト?

どこにも限定されないためです。 JavaScript変数は素敵でシンプルです。彼らが持っている唯一の範囲は、機能レベルであり、次にvarキーワードを使用した場合のみです。

2

それは割り当てのJavaScriptです。しかし、このコードはin ...ループの濫用でもあります。

for(var temp in obj) { 
    // do something with temp; 
} 

従来のフォームですが、あなたのサンプルは合法です。

注:配列の... inループでは、予期しない結果が発生します。

関連する問題