在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>