Можете ли вы объяснить мне это?Расширение прототипа Javascript странное поведение
JAVASCRIPT
if (typeof Array.prototype.contains != 'function') {
Array.prototype.contains = function (str){
return this.indexOf(str) > -1;
};
}
var text = "Hello world";
var tokens = text.split(" ");
console.log(tokens.length);
for (var i in tokens){
console.log(tokens[i]);
}
ВЫХОД
2
"Hello"
"world"
function()
Другими словами, "содержит" функции я добавляется в массив прототипа появляется в цикл в качестве последнего элемента (но длина массива 2). Зачем?
Поскольку каждое свойство, созданное посредством присваивания, * перечислимо * и 'for/in' выполняет итерации по всем свойствам перечисления. –