2016-04-24 75 views
0

我已经通过Function构造函数动态创建函数。现在我想要在其内部获取函数的名称。这怎么可能?获取使用函数构造函数创建的函数名称

var myFunc = new Function("arg", "// want the name here") 

我可以调用使用myFunc(arg)的功能,但名称不被使用arguments.callee.name

更新打印:有没有什么办法让ATLEAST即像

myFunc instanceof <something>... 
+0

该函数没有名称。它是匿名的。 – Quentin

+0

你想得到什么名字? ' “myFunc的”'? – Oriol

回答

2

功能创建的参考使用Function构造函数是匿名的,这就是为什么.name为空。如果由于某些原因您需要命名功能,请查看Is there any non-eval way to create a function with a runtime-determined name?

+0

有没有办法让atleast获得自我引用。举个例子, myFunc instanceof东西.. –

+0

从里面的函数?不,除非'myFunc'是全局的。有理由不赞成'arguments.callee'。你需要什么? – Bergi

+0

我有一个重复回调函数,它被注册到一个库函数,然后通过这个库被调用。所以我可以更改回调函数的名称,但不能传递参数。但出于某些原因,我想知道在被调用时有这个回调的参考。 是的'myFunc'可以全球化 –