【发布时间】:2023-03-15 21:55:01
【问题描述】:
在 JavaScript 中,函数是可调用的。
我可以从函数中删除这个属性,只留下一个普通对象吗?
var foo = function () {};
foo.[[callable]] = false; // pseudocode
foo(); // "foo is not a function"
【问题讨论】:
-
出于好奇,您想要做什么,而普通的旧对象无法做到?
-
@user3749178 好奇心。
-
您可能需要深入研究 V8 之类的实现,以了解它如何确定它是函数对象还是常规对象。我从未见过这种区别记录在案。如果
typeof(foo)返回'function',则假定它是可调用的,我很确定您不能更改现有对象的类型。 -
能够subclass Function 是 ES6 的一部分,但我认为这不会让你让它不可调用。
-
为了回答您的问题,我需要更好地了解预期用途
标签: javascript