我知道这可能是一个奇怪的问题,可能没有实际应用,但是有可能创建一个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
。答案 0 :(得分:3)
如果我理解正确的话。对象构造函数需要返回他的方法。然后你可以像你描述的那样打电话。
function Factory() {
return this.method;
}
Factory.prototype.method = function() {
console.log('from method');
};
var method = new Factory();
method();