Javascript 有没有办法更改函数的名称

Javascript 有没有办法更改函数的名称,javascript,Javascript,我使用的模式来自: 这样我就可以创建很多构造函数。我希望有一种设置函数名的方法。也就是说,给定构造函数 function struct(cls, props) { function Struct(obj) { // add properties for (var name in props) { if (props.hasOwnProperty(name)) { // here you could implement type checking e

我使用的模式来自: 这样我就可以创建很多构造函数。我希望有一种设置函数名的方法。也就是说,给定构造函数

function struct(cls, props) {
  function Struct(obj) {
    // add properties
    for (var name in props) {
      if (props.hasOwnProperty(name)) {
        // here you could implement type checking exploiting props[name]
        this[name] = obj[name];
      }
    }
  }
  // the following doesn't work for me!
  // Struct.name = cls;
  return Struct;
}
当我使用它创建实例时,例如

  var Person = struct('Person', {
  name: String,
  surname: String
});

var person = new Person({surname: 'Canti', name: 'Giulio'});
在控制台中,我得到以下信息:

但我更愿意:

Person {name: "Giulio", surname: "Canti"}

有什么建议吗?

这里您指的是对象的构造函数;当然你可以改变,但这真的是你想要的吗?这不仅仅是关于名称,它是关于正确的语义。正如你所看到的,用动态名称创建函数变得非常丑陋非常快你来自什么语言,你真正想实现什么?这里没有“匿名函数”。所有函数都已声明并具有名称。人是一个物体。