实例代码如下:
//申明我们的对象
var monkey = {
hands:2,
legs:2,
heads:1,
job: 'PHP'
};
//下面是在原型上增加了一个名为clone的方法
if(typeof Object.prototype.clone == 'undefined'){
Object.prototype.clone = function(){};
}
for(var i in monkey){
console.log(i,':',monkey[i]);
}
/*
输出结果:
hands : 2
legs : 2
heads : 1
job : PHP
clone : (){}
*/
//方式一:
for(var j in monkey){
if(monkey.hasOwnProperty(j)){
console.log(j,':',monkey[j]);
}
}
/*
此时的输出结果为:
hands : 2
legs : 2
heads : 1
job : PHP
*/
//方式二:(其好处在于在monkey对象重新定义hasOwnProperty情况下可以避免命名冲突)
for(var m in monkey){
if(Object.prototype.hasOwnProperty.call(monkey,m)){
console.log(m,':',monkey[m]);
}
}
/*
此时的输出结果为:
hands : 2
legs : 2
heads : 1
job : PHP
*/
说明:
为了判断一个对象是否包含自定义属性而不是原型链上的属性,可以使用hasOwnProperty,但是如果你的对象也申明了hasOwnProperty属性的话, 我们需要使用继承自 Object.prototype 的 hasOwnProperty 方法。