Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JavaScript通用对象中删除函数属性_Javascript_Web_Knockout.js - Fatal编程技术网

从JavaScript通用对象中删除函数属性

从JavaScript通用对象中删除函数属性,javascript,web,knockout.js,Javascript,Web,Knockout.js,我有一个带有一些属性的JavaScript对象,其中一个属性是function,我想删除function属性。 问题是JavaScript模型是通用的,我不知道属性名。 如何执行此操作?通常,如果您认为需要执行此操作,通常需要深入问题以找到根本原因(为什么对象具有此功能,您认为首先需要删除此功能) 您可以从引用如下函数的对象中删除所有属性,假设它们是自己的可枚举属性: for (const key of Object.keys(theObject)) { if (typeof theOb

我有一个带有一些属性的JavaScript对象,其中一个属性是function,我想删除function属性。 问题是JavaScript模型是通用的,我不知道属性名。
如何执行此操作?

通常,如果您认为需要执行此操作,通常需要深入问题以找到根本原因(为什么对象具有此功能,您认为首先需要删除此功能)

您可以从引用如下函数的对象中删除所有属性,假设它们是自己的可枚举属性:

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
,如果您想提前停止):



但同样,这听起来像是一个X/Y问题,你想做X,认为Y是如何做的,然后问Y。我想如果你看得更深一点,你会想解决X。你可以使用for in loop in object,然后使用delete delete it进行检查。我们需要更多的上下文,给我们展示一个对象的示例。
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
    }
});