【发布时间】:2015-10-01 03:07:15
【问题描述】:
我知道这可能是一个奇怪的问题,可能没有实际应用,但是否有可能创建一个 JavaScript 类来构造像函数一样的实例?这就是我的意思:
function Factory() {}
// this may not be necessary, but I'll include it for sake of clarification
Factory.prototype = Object.create(Function.prototype);
var method = new Factory();
method(); // Objective: should not throw TypeError
进一步明确目标:
-
method应该可以作为函数调用 -
method应该是调用构造函数的结果(例如var method = new Factory()在这种情况下) - 构造函数不能是
Function。
【问题讨论】:
-
您要解决什么问题?您发布了一些带有未知应用程序的代码。我们有零上下文来评估它或知道还有什么建议。此外,您的问题也很难说清楚。
-
@jfriend00 这只是一个基本上没有上下文的挑战。我只是好奇是否有可能在 JavaScript 中实现这一点,我认为这个问题的答案可能会揭示各种 JavaScript 构造的一些有用的利基,从而使这样的行为成为可能。
-
那么,“有没有可能”,你的意思是说它不会产生错误吗?你还没有描述你想要的输出是什么,所以很难评估一个未知的结果是否可能。抱歉,当根本没有描述“它”时,我不知道如何回答“有可能”这个问题。事实上,现在我什至不知道问题是什么。
-
@jfriend00 本质上,目标是使
method能够作为函数调用,并作为调用不是Function的构造函数的结果。
标签: javascript function constructor challenge-response