一組正則表達式我有一組存儲在對象的正則表達式,沿圈穿過的JavaScript
myRegexes = {};
myRegexes.reg1 = /[a-z]+[0-9]+/;
myRegexes.reg2 = /[a-e]+/;
的風格,我可以再做myRegexes.reg1.exec(sampleStr)
和它完美的罰款。
但是,如果我遍歷這個對象,並說
for(reg in myRegexes){
reg.exec(sampleStr);
}
我得到一個異常說「類型錯誤:對象REG1有沒有方法‘高管’」
我知道,JavaScript是靠不住着如何它執行for-in循環,但我不明白它是如何成功找到變量的,但是一路上失去了它的方法。任何人都可以告訴我爲什麼這會失敗,以及正確的方法是什麼?
對於for循環,JavaScript並不是真正的好手。它只是不會做你認爲它:) – PeeHaa
我在想你應該使用hasOwnProperty的實例,以避免不必要的工件。在這種情況下,我只是不瞭解基礎知識。 – BostonJohn
這裏的關鍵在於Javascript如何處理對象的成員;它們基本上都是哈希鍵,所以當你循環它們時,你會這樣對待它們。下面的答案給出了更多細節,但這是要點。定義對象的屬性等同於創建散列表。 – RonaldBarzell