我可以使用以下内容在 javascript 中动态创建函数:
var MyClass = new Function("console.log('Hello World!');");
但是当我这样做时,ID 将设置为“匿名”。我真的很想给这样一个函数一个 ID 用于调试目的;这就是您在控制台记录此类函数(类)的实例时显示的 id。有没有办法做到这一点?
我可以使用以下内容在 javascript 中动态创建函数:
var MyClass = new Function("console.log('Hello World!');");
但是当我这样做时,ID 将设置为“匿名”。我真的很想给这样一个函数一个 ID 用于调试目的;这就是您在控制台记录此类函数(类)的实例时显示的 id。有没有办法做到这一点?
您可以通过创建这样的create
函数来做到这一点:
var create = (function() {
var id = 0;
return function(f) {
return eval('(function id' + (id++) + (f + '').substr(8) + ')' );
};
})();
var a = create(function() { alert(0); });
var b = create(function() { alert(1); });
alert(a); // function id0() { alert(0); }
alert(b); // function id1() { alert(1); }
a(); // 0
b(); // 1
简短的回答:没有。
更长的答案:不可能,甚至没有设置function.name
。老实说,我什至不明白这一点,因为Function
构造函数是用于动态创建的临时、动态函数。所以把它们放在 viariables 上,你就完成了。
如果您希望它们有一个名称,因为您正在创建一个类,请使用语法
function MyClass(...) {
请注意,无论如何,一些开发人员工具(如 Chrome 网络检查器)对此非常聪明,MyClass
即使您这样定义它也会显示:
var MyClass = function() {...