for..in
ES6によると、すべての列挙型のString
が通過しますが、同じプロパティを参照する必要がありますか?その列挙型以外のプロパティで上書きされますか?以下のコードのようにArray
の場合、Object.prototype.indexOf
はトラバースされません。上のリンクのpseduoコードは、重複した列挙可能なプロパティが再び列挙されないことを暗示しているだけで、このケースをカバーしていないようです。for..in traverseプロパティは、プロトタイプチェーンの列挙できないプロパティによって上書きされますか?
Object.prototype.indexOf = "test";
var arr = [];
for (var item in arr) {
// Object.prototype.indexOf is overwritten for arr by Array.prototype.indexOf,
// the latter is non-enumerable
console.log(item);
}
偽のコードがこのケースをカバーしていないと思われる理由はわかりません。私には明らかです。 – Bergi
@Bergiあなたは正しいです、私は疑似コードの再帰部分を見逃しました。 – Thomson