编程语言
首页 > 编程语言> > JavaScript:如何在不使用Object.defineProperty的情况下定义不可枚举的方法?

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