我有一个带有一些属性的JavaScript对象,其中一个属性是函数,我想删除函数属性。 问题是JavaScript模型是通用的,我不知道属性名称。 我该怎么办?
答案 0 :(得分:0)
一般情况下,如果您认为需要这样做,通常需要进一步研究问题以找到根本原因(为什么对象具有此功能,您认为首先需要删除)。
您可以从引用此类函数的对象中删除所有属性,假设它们是拥有,可枚举属性:< / p>
for (const key of Object.keys(theObject)) {
if (typeof theObject[key] === "function") {
delete theObject[key];
}
}
如果它可能无法枚举,我们可以改为使用getOwnPropertyNames
:
for (const key of Object.getOwnPropertyNames(theObject)) {
if (typeof theObject[key] === "function") {
delete theObject[key];
}
}
如果您想要停止使用第一个,请添加break;
。
这两个例子都是ES2015 +;如果您需要在ES5中执行此操作,请使用forEach
(如果您想提前停止,请使用some
):
Object.keys(theObject).some(function(key) {
if (typeof theObject[key] === "function") {
delete theObject[key];
return true; // If you want to stop on the first; if not,
// remove this and use `forEach` instead
}
});
但同样,这听起来像是一个X / Y问题,你想要做X,并且认为Y是如何做到的,并询问Y.我怀疑如果你看得更深,你会想要解决X而不是