for in 迴圈遍歷物件遇到的問題

2021-09-01 09:26:31 字數 423 閱讀 1395

當原型鏈上的可列舉屬性和目標物件的屬性同名時,原型鏈上的同名屬性會被忽略

a = 

a.__proto__.name = 'ye';

for(item in a) console.log(item) // name

a.__proto__.name2 = 'ye';

for(item in a) console.log(item) // name name2

順便提下for of 

for (var item if arr)

arr 不能是物件,因為物件是不可迭代的

但可以遍歷陣列,並且item已經是值了,而不是屬性名

for of 和for in的另外一點不同是:for of 不會遍歷目標原型鏈上的屬性

for in遍歷和for 迴圈

在做收藏功能的時候,使用的是把資料儲存到nsuserdefaults 中。過程是,現將要儲存的資訊用自定義的乙個model 儲存,再用nsmutablearray 把model 新增到陣列中,把陣列儲存到 nsuserdefaults中,使用的方法是 nsuserdefaults user nsus...

js中for in遍歷物件屬性

for in函式會遍歷物件中的所有可列舉屬性,那麼,問題來了,不可列舉屬性又是什麼?每個物件的屬性自身,都有乙個屬性,enumerable,若屬性a的屬性值即a.enumerable為false,則屬性a為不可列舉屬性。為何要定義enumerable屬性呢?就是為了一下三個操作。enumerable...

for in遍歷的順序

雖然ecmascript規定了物件的遍歷順序是由物件定義時屬性的書寫順序決定的.譯者注 es5已經對遍歷機制做了調整,重新規定 屬性遍歷的順序是沒有被規定的 大部分瀏覽器都依照這個規定,先新增的屬性先被遍歷 除了從原型上繼承的屬性 譯者注 chrome和opera已經遵循了es5的新規定,具體 請看...