在Javascript有两种方式使用in操作符:单独使用和在for-in循环中使用。在单独使用时,in操作符会在通过对象能够访问给定属性时返回true,无论该属性存在于实例中还是原型中。
实例一:检查属性是在原型中还是在对象中
function Person(){}
Person.prototype.name="Nicholas";
var person1=new Person();
console.log(person1.hasOwnProperty("name")); //false
console.log("name" in person1); //true
同时使用hasOwnProperty()方法和in操作符,就可以确定该属性到底是存在于对象中,还是存在于原型中。
实例二:为数组添加indexOf()方法
if(!('indexOf' in Array)){
Array.prototype.indexOf = function(item){
for(var i = 0;i<this.length;i++){
if(this[i] == item){
return i;
}
}
return -1;
}
}
实例三:for-in循环
<script type="text/javascript">
for(var p in this){
console.log(p);
}
</script>