实例为函数的JavaScript构造函数

实例为函数的JavaScript构造函数,javascript,function,constructor,challenge-response,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();

我知道这可能是一个奇怪的问题,可能没有实际的应用程序,但是有可能创建一个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
    应该是调用构造函数的结果(例如,在这种情况下,
    var method=new Factory()
  • 构造函数不能是
    函数

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

      function Factory() {
          return this.method;
      }
      
      Factory.prototype.method = function() {
          console.log('from method');
      };
      
      var method = new Factory();
      
      method();
      

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

      function Factory() {
          return this.method;
      }
      
      Factory.prototype.method = function() {
          console.log('from method');
      };
      
      var method = new Factory();
      
      method();
      

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

      function Factory() {
          return this.method;
      }
      
      Factory.prototype.method = function() {
          console.log('from method');
      };
      
      var method = new Factory();
      
      method();
      

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

      function Factory() {
          return this.method;
      }
      
      Factory.prototype.method = function() {
          console.log('from method');
      };
      
      var method = new Factory();
      
      method();
      


      您想解决什么问题?您发布了一些带有未知应用程序的代码。我们没有上下文来评估它,也不知道还有什么建议。另外,也有点难以说出你的问题是什么。@jfriend00这只是一个基本上没有上下文的挑战。我只是好奇是否有可能在JavaScript中实现这一点,我认为答案可能会揭示出各种JavaScript结构的一些有用的特性,从而使类似的行为成为可能。那么,通过“是否可能”,你的意思是它不会产生错误吗?您没有描述希望输出是什么,因此很难评估未知结果是否可能。对不起,我不知道如何回答一个问题“是否可能”,当“它”根本没有被描述的时候。事实上,现在我甚至不知道问题是什么。@jfriend00本质上,目标是使
      方法
      能够作为函数调用,并将其作为调用不是
      函数
      的构造函数的结果。您试图解决的问题可能重复?您发布了一些带有未知应用程序的代码。我们没有上下文来评估它,也不知道还有什么建议。另外,也有点难以说出你的问题是什么。@jfriend00这只是一个基本上没有上下文的挑战。我只是好奇是否有可能在JavaScript中实现这一点,我认为答案可能会揭示出各种JavaScript结构的一些有用的特性,从而使类似的行为成为可能。那么,通过“是否可能”,你的意思是它不会产生错误吗?您没有描述希望输出是什么,因此很难评估未知结果是否可能。对不起,我不知道如何回答一个问题“是否可能”,当“它”根本没有被描述的时候。事实上,现在我甚至不知道问题是什么。@jfriend00本质上,目标是使
      方法
      能够作为函数调用,并将其作为调用不是
      函数
      的构造函数的结果。您试图解决的问题可能重复?您发布了一些带有未知应用程序的代码。我们没有上下文来评估它,也不知道还有什么建议。另外,也有点难以说出你的问题是什么。@jfriend00这只是一个基本上没有上下文的挑战。我只是好奇是否有可能在JavaScript中实现这一点,我认为答案可能会揭示出各种JavaScript结构的一些有用的特性,从而使类似的行为成为可能。那么,通过“是否可能”,你的意思是它不会产生错误吗?您没有描述希望输出是什么,因此很难评估未知结果是否可能。对不起,我不知道如何回答一个问题“是否可能”,当“它”根本没有被描述的时候。事实上,现在我甚至不知道问题是什么。@jfriend00本质上,目标是使
      方法
      能够作为函数调用,并将其作为调用不是
      函数
      的构造函数的结果。您试图解决的问题可能重复?您发布了一些带有未知应用程序的代码。我们没有上下文来评估它,也不知道还有什么建议。另外,也有点难以说出你的问题是什么。@jfriend00这只是一个基本上没有上下文的挑战。我只是好奇是否有可能在JavaScript中实现这一点,我认为答案可能会揭示出各种JavaScript结构的一些有用的特性,从而使类似的行为成为可能。那么,通过“是否可能”,你的意思是它不会产生错误吗?您没有描述希望输出是什么,因此很难评估未知结果是否可能。对不起,我不知道如何回答一个问题“是否可能”,当“它”根本没有被描述的时候。事实上,现在我甚至不知道问题是什么。@jfriend00本质上,目标是使
      方法
      能够作为函数调用,并作为调用不是
      函数
      的构造函数的结果。等待的可能重复,因此可以从构造函数返回值?我不知道这是可能的。是的,你可以归还你需要的任何东西。基本上,它仍然是函数。我认为如果您将任何函数作为构造函数调用(即使用
      new
      关键字),则该函数不允许返回值,否则它将抛出错误。我很惊讶这是允许的。@PatrickRoberts-如果你从一个用
      new
      调用的构造函数中返回一些东西,那么通过
      new
      创建的对象就不会返回,如果没有在构造函数中的其他地方赋值,就会被垃圾收集。我想我学到了一些新东西。谢谢你的见解。等等,你能从构造函数返回一个值吗?我不知道