JavaScript:如何在不使用Object.defineProperty的情况下定义不可枚举的方法?
作者:互联网
我想为Object添加一个方法,但现在所有的数组和对象都有它.当我使用(.. in ..)时,它被驱使,这对我的软件来说是一个问题.所以,我需要让我的方法不可枚举.
我知道有一个Object.defineProperty(),但它不受旧浏览器(仍然存在)甚至Konqueror的最新版本的支持.
还有另一种方法可以使方法不可枚举吗?
解决方法:
不.这就是为什么在没有立即检查hasOwnProperty的情况下使用JavaScript for..in被认为是不好的做法.即,你应该总是这样做:
for (var item in obj) {
if (obj.hasOwnProperty(item)) {
// ...
}
}
如果在没有hasOwnProperty检查的情况下使用for..in,JSLint之类的工具将在代码中报告错误.
标签:javascript,object,arrays,enumerable 来源: https://codeday.me/bug/20190630/1336054.html