2013-10-18 62 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(){ 
     //... 
    } 
});