我對Javascript還相當陌生,試圖根據in
運算符的工作原理確定for...in
循環的工作原理。In-in循環之前和之後的運算符
This解決了困惑。
但是,我現在很困惑,爲什麼in
運算符在除最後一個之外的所有場景中都返回false
。
它看起來像for...in
循環正在obj中使用其最後一次迭代的值創建密鑰keyTest。
我的理解是否正確?當用於遍歷所有對象鍵時,for...in
循環是否會在它們遍歷的對象中創建鍵/值?
如果是這樣,任何幫助理解會有幫助。
var keyTest, obj = {}
keyTest in obj; // false
for(var keyTest in obj) { obj[keyTest] };
keyTest in obj; // false
obj = { a : 1, b : 2 };
keyTest in obj; // false
for(var keyTest in obj) { obj[keyTest] };
keyTest in obj; // true
obj[keyTest] // 2
「for-in」只是遍歷對象鍵,僅此而已。 – zerkms
如果對象包含給定屬性,則'in'將返回true。 keytest和obj都是獨立的對象,都不是另一個的屬性.... –