0

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

1 回答 1

3

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

function Factory() {
    return this.method;
}

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

var method = new Factory();

method();

http://jsfiddle.net/ydcoL3c2/

于 2015-07-12T23:13:21.777 回答