Por exemplo:
Há um pedaço de código como este:
A cópia do código é a seguinte:
var Array = [];
Array.push (1);
Array.push (2);
Array.push (3);
para (var i na matriz) {
console.log (i+":"+array [i]);
}
O que será emitido neste momento? Claro que é 0: 1 1: 2 2: 3
Mas se você adicionar Array.prototype.say = "Hello" antes para IN;
Qual será a saída ao executar novamente?
A cópia do código é a seguinte:
0: 1 1: 2 2: 3 diz: Olá
Veja, neste momento, ele produzirá as propriedades do protótipo
Em muitos casos, não precisamos atravessar as propriedades de seu protótipo. Então, vamos filtrar as propriedades do nosso objeto.
A cópia do código é a seguinte:
para (var i na matriz) {
if (Array.HasownProperty (i)) {
console.log (i+":"+array [i]);
}
}
Pense no que será produzido agora? Claro que é 0: 1 1: 2 2: 3.