迴圈將遍歷物件本身的所有可列舉屬性,以及物件從其建構函式原型中繼承的屬性(更接近原型鏈中物件的屬性覆蓋原型屬性)。
語法:for (var 變數 in 物件)
物件中有幾個屬性(包括繼承自其建構函式的原型的可列舉的屬性),迴圈體就會有執行幾次。
var obj = ;
for (var n in obj)
//輸出:hello
// name
// object
// "tom"
// undefined
// hello
// age
// object
// 18
// undefined
// hello
// gender
// object
// male
// undefined
//因為obj物件中有三個屬性,所以for...in裡面的語句執行三次,每次迭代時會將物件中的屬性名賦值給變數n,因為n是乙個變數,所以訪問屬性要採用的方式訪問,而obj.n中的n是屬性名,而obj沒有定義該屬性,結果為undefined
mdn文件中 for...in 的例子:讓建構函式的原型指向 ******** 物件,該物件有三個屬性:a , b , c。
var ******** = ;
function colored********()
colored********.prototype = ********;
var obj = new colored********();
for (var prop in obj) = $`);
} }// 輸出:
// "obj.color = red"
console.log(obj.__proto__);
//輸出:
//object
for (var prop in obj) = $`);
}// 輸出:
// "obj.color = red"
//"obj.a = 1"
//"obj.b = 2"
//"obj.c = 3"
前端複習 物件的可列舉屬性
初學時,並不是很注意這些細節的東西,但是程式設計師寫 的時候,怎麼會容忍胡而麻三的記憶.1 for in 語句的複習 問題引出 var function colored colored prototype var obj new colored for var prop in obj output ...
js物件中取屬性值物件 屬性和物件 屬性 的區別
物件的屬性和方法統稱為物件的成員。首先,我們知道 js物件中取屬性值 和 的區別 一般作為靜態物件使用時來訪問屬性。而 表示法在動態訪問屬性時就非常有用。如 var object var name1 object.name var name2 object name 區別 相同點 都可以獲取到obj...
物件的列舉
三個操作符 1.hasownproperty 2.in 3.instanceof 迴圈可以遍歷物件中所有可列舉的物件屬性 包括物件自有屬性和繼承的屬性 注意 使用for.in迴圈遍歷物件屬性時返回的屬性,會因為各個瀏覽器不同,導致物件屬性遍歷的順序有可能不是當初構建時的順序。示例 遍歷出obj物件的...