JavaScript构造函数,其实例是函数

时间:2015-07-12 23:02:15

标签: javascript function constructor challenge-response

我知道这可能是一个奇怪的问题,可能没有实际应用,但是有可能创建一个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

1 个答案:

答案 0 :(得分:3)

如果我理解正确的话。对象构造函数需要返回他的方法。然后你可以像你描述的那样打电话。

function Factory() {
    return this.method;
}

Factory.prototype.method = function() {
    console.log('from method');
};

var method = new Factory();

method();

http://jsfiddle.net/ydcoL3c2/