2013-10-18 58 views
0

有没有一种方法可以将函数添加到对象原型中,使其不会包含在循环中?将函数添加到对象原型的正确方法?

例:

Object.prototype.stuff = function(){}; 
var obj = {'hello':1}; 
for(var i in obj){ 
    console.log(i); 
} 
//it will log: hello, stuff 
//I'd want it to only log hello, 
+1

使用'Object.defineProperty'并设置'enumerable'如'FALSE'(这是默认值):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty - 查看浏览器兼容性的底部。要么是这样,要么在用'for'循环迭代时使用'hasOwnProperty':https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty。要么是这些,要么遍历Object.keys(obj)'的结果:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys – Ian

回答

0
Object.defineProperty(Object.prototype, "stuff", { 
    enumerable: false, 
    value: function(){ 
     //... 
    } 
});