var oDome = document.getElementById('dome');
Object.prototype.move = function(json){
for(var key in json){
console.log(key)
//为什么输出的是 width,height,move ?
//不是应该只有width,height吗?
}
console.log(json)
};
oDome.move({
'width':'200px',
'height':'300px'
});
for…in
在你的例子中,
move
属性在Object
构造函数的原型里面,而所有对象都是Object
的实例,所以枚举任何一个对象的属性都会看到它。解决方法有两个——
使用
hasOwnProperty
方法,检验属性是否是其本身所含有的将
move
的属性设置为不可枚举