參與iT邦JavaScript中忍比賽,獲得一本JS武林祕級“JavaScript設計模式”,因而閉門修練月餘,今神功既成故節錄三十片段,以饗邦友。
for-in是用來重複整個非陣列物件,也稱為列舉法(enumeration)。
通常用for處理"陣列",用for-in處理重複"物件"。
要注意的是在列舉物件屬性時很重要的是:使用hasOwnProperty()來過濾掉原型(prototype)屬性。
來個範例看看:
var i,
man = {
hands : 2,
legs : 2,
heads : 1
};
//在程式碼它處,加入clone()方法
if (typeof Object.prototype.clone === "underfined"{
Object.prototype.clone = function(){};
};
接著用for-in來測試,有用hasOwnProperty來過濾
for (i in man){
if (man.hasOwnProperty(i)){
console.log(i , ":", man[i]);
};
};
//console 結果
//hands:2
//legs:2
//leads:1
接著用for-in來測試,未使用hasOwnProperty來過濾
for (i in man){
console.log(i , ":", man[i]);
};
//console 結果
//hands:2
//legs:2
//leads:1
//clone:function()
是否覺得「for-in 迴圈」也如同「for」 迴圈一樣地多樣化呢?今天咱就上到這裏,喝口茶趣~~~
待續.....