Par exemple :
Il existe un tel morceau de code :
var array = [];
array.push(1);
array.push(2);
array.push(3);
for( var i in array) {
console.log(i ":" array[i]);
}
Qu'est-ce qui sera affiché à ce moment-là ? Bien sûr, c'est 0:1 1:2 2:3
Mais si vous ajoutez Array.prototype.say = "hello";
avant for in, que sera le résultat lorsque vous l'exécuterez à nouveau ?
0:1 1:2 2:3 dites : bonjour
Comme vous pouvez le voir, à ce moment-là, il affichera les attributs du prototype
Dans de nombreux cas, nous n'avons pas besoin de parcourir les attributs de son prototype. est-ce l'objet que nous utilisons actuellement, nous ne pouvons pas garantir que d'autres développeurs ont ajouté certains attributs à son prototype ? Filtrons donc les propriétés de notre objet. Cette fois, nous utilisons la méthode hasOwnProperty, comme suit :
for(var i in array){
if(array.hasOwnProperty(i)) {
console.log(i ":" array[i]);
>
>
Réfléchissez-y à nouveau, que va-t-il sortir maintenant ? Bien sûr, c'est 0:1 1:2 2:3.