例如:
有这么一段代码:
var array = [];
array.push(1);
array.push(2);
array.push(3);
for(var i in array) {
console.log(i+":"+array[i]);
}
此时会输出什么呢?当然是0:1 1:2 2:3
但是如果在for in之前加上Array.prototype.say = "hello";
再次运行会输出什么呢?
0:1 1:2 2:3 say:hello
看到了吧,这个时候,它会输出原型的属性
在很多时候,我们不需要遍历它原型的属性,还有一个原因就是,我们现在用到的对象,我们不能保证,其他开发人员,有没有,在它的原型上加一些属性呢?所以呢,我们就过滤一下我们对象的属性吧,这个时候就用到了hasOwnProperty方法,如下:
for(var i in array){
if(array.hasOwnProperty(i)) {
console.log(i+":"+array[i]);
}
}
再想想现在会输出什么呢?当然是0:1 1:2 2:3啦。
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn