Class ES6(浏览器),如何获取类构造函数字符串来解析其参数?

Class ES6(浏览器),如何获取类构造函数字符串来解析其参数?,class,ecmascript-6,cross-browser,tostring,Class,Ecmascript 6,Cross Browser,Tostring,我想问一下如何解析ES6类构造函数以获取其参数。我已经在ES5中完成了这项工作(在ES5中,类直接实现为函数,它的工作方式类似于charm),但在es6中它已经改变了。让我解释一下: 当我有以下代码时: class test { constructor(a, b, c) { } } console.log(test.toString()); 我希望它会回来: function(a, b, c) { } 对于Firefox来说,这是事实,但不幸的是,Chrome、Edge、O

我想问一下如何解析ES6类构造函数以获取其参数。我已经在ES5中完成了这项工作(在ES5中,类直接实现为函数,它的工作方式类似于charm),但在es6中它已经改变了。让我解释一下:

当我有以下代码时:

class test {

   constructor(a, b, c) {
   }

}

console.log(test.toString());
我希望它会回来:

function(a, b, c) {
}
对于Firefox来说,这是事实,但不幸的是,Chrome、Edge、Opera和Safari又回来了

class test {

   constructor(a, b, c) {
   }

}
这仍然是一个函数,我很确定,因为

typeof (test)
返回“函数”

但似乎不可能再获得构造函数的参数(或者更确切地说,它的字符串表示形式)

参见小提琴:

当然,我可以解析类字符串,查找构造函数并获取其参数,但是。。。不再那么好了


在es6中,有没有简单的方法将类构造函数设置为字符串?

简而言之:不要。您需要它做什么?案例A:如果您需要正确地完成这项工作,请部署一个完整的ES6解析器来完成这项工作。案例B:只要调整您的正则表达式,找到字符串
构造函数
后面的参数列表,就像您需要的一样,我需要它来配置DI容器。我的意思是给正确的位置分配正确的参数。若并没有其他方法,我将解析整个类(正如Bergi所说的那个样查找构造函数),那个么就不要依赖DI的参数名。使用字符串显式声明它们。1)Function.prototype.toString不是ES实现所需的功能2)minifier会弄乱您的参数名称。这只是脆弱的代码。