For In 裡的陷阱

2021-08-31 19:30:57 字數 460 閱讀 6893

for…in 宣告用於遍歷陣列或者物件的屬性(對陣列或者物件的屬性進行迴圈操作)。

先定義乙個建構函式:

var status = function(arg)

status.prototype.getstatus = function()

接著例項化:

var instance = new status('a test string');

instance.getstatus();

instance.ooxx = 'ooxx';

用 for…in 遍歷屬性:

for(i in instance)

看下執行結果:

argooxx

getstatus

可見原型方法也被遍歷出來的,但事實上往往並不想要。於是需要這麼幹:

for(i in object)

}這樣就能把函式和原型屬性方法過濾掉鳥~

golang 併發鎖在struct裡的陷阱

type test struct func main buf 1 test var wg sync.waitgroup for i 0 i 100 i i wg.wait 結果是報cuncurrent map wirtes 原因 從slice中把拿出來其實是拷貝的,而struct 在賦值的時候是進行...

for in遍歷的順序

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

for in 的各種坑

for in方法用來遍歷陣列或者物件的顯性屬性,就是說我們自己定義的屬性都是可以遍歷的,而物件固有的屬性,比如object.prototype.tostring是遍歷不出來的。for in方法簡潔好用,但依舊有一些需要注意的地方 1.遍歷順序 var b for var key in b for v...