[英]JavaScript: How to add a not enumerable method (not a property) in Object.defineProperty
[英]JavaScript: How to Define a Non-Enumerable Method without using Object.defineProperty?
我想为Object添加一个方法,但现在所有的数组和对象都有它。 当我使用for(.. in ..)
,它被驱使,这对我的软件来说是一个问题。 所以,我需要让我的方法不可枚举。
我知道有一个Object.defineProperty()
,但它不受旧浏览器(仍然存在)甚至Konqueror的最新版本的支持。
还有另一种方法可以使方法不可枚举吗?
不。这就是为什么在没有立即检查hasOwnProperty
情况下使用JavaScript for..in
被认为是不好的做法。 即,你应该总是:
for (var item in obj) {
if (obj.hasOwnProperty(item)) {
// ...
}
}
如果在没有hasOwnProperty
检查的情况下使用for..in
JSLint等工具将在代码中报告错误。
对于ECMAScript 3(在旧浏览器中使用),您无法更改可枚举属性。
如果要过滤方法,也许可以检查对象的类型(.. in ..)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.