Привет! Добавляю метод в стандартный объект Object JavaScript через Object.prototype. Однако, после этого, он становится одним из свойств любого объекта, который появляется при переборе (for in), при этом hasOwnProperty, понятно, не спасает. Как сделать так, чтобы метод был "скрыт" при переборе, не выявлялся как свойство?
if(Object.prototype.flip === undefined){
(function(){
Object.prototype.flip = function(bSelf){
if(bSelf === undefined || bSelf){
for(var k in this)if(this.hasOwnProperty(k)){
this[this[k]] = k;
delete this[k];
} // fr
return this;
} else {
var oObject = this;
return oObject.flip();
} // if
}; // flip
})();
} // if
var oObject = {1:"a", 2:"b", 3:"c"};
for(var k in oObject)if(oObject.hasOwnProperty(k)){
log(k); // a, b, c, flip
} // fr