对象有Object.toString
,一种可以在任何对象上调用的方法。在遍历属性列表时,或者只是执行console.log(obj)时,您不会看到toString出现为对象的属性。它是隐藏的。
我想使用Object.prototype.myMethod在Object原语上添加一个新方法。但是,每次迭代对象时,我都不希望它出现。我希望它隐藏起来。
我该怎么做?
答案 0 :(得分:2)
你可以使用ECMAScript 5的defineProperty
[docs]:
Object.defineProperty(Object.prototype, 'myMethod', {
value: function() {
// your function
},
enumerable: false // default is already `false`
});
显然这在不支持ES5的浏览器中不起作用(尤其是IE8及更早版本)。