在Javascript中生成函数构造函数

在Javascript中生成函数构造函数,javascript,function,constructor,Javascript,Function,Constructor,如果可能的话,我如何创建一个函数构造函数?一个也有原型方法的构造函数 我知道如何创建一个对象构造函数 Function Thing(val) { this.prop1 = val } Thing.prototype.action = function()... 但要使用原型道具和方法创建新功能,我能想到的最好方法是,例如: Function Func(val) { var func = function(x) {return val*x}; func.val = val;

如果可能的话,我如何创建一个函数构造函数?一个也有原型方法的构造函数

我知道如何创建一个对象构造函数

Function Thing(val) { this.prop1 = val  }
Thing.prototype.action = function()...
但要使用原型道具和方法创建新功能,我能想到的最好方法是,例如:

Function Func(val) { 
   var func = function(x) {return val*x};
   func.val = val;
   func.__proto__ = proto;
   return func;
}

const proto = {
   product: function(x) { return this.val*x },
};
为了代码卫生,有没有更优雅的解决方案?

试试

function Person(name) {  
  this.name = name;
}
// create a new instance
var person = new Person('codechimp');
console.log('person.constructor is ' + person.constructor);
试试看

Object.getPrototypeOf()
Object.getPrototypeOf()