![](/img/trans.png)
[英]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.