如何从在这个例子中一个函数中获得的变量名:
// it should return A
var A = function(){ console.log(this.name); }
有没有这样的事情?
如何从在这个例子中一个函数中获得的变量名:
// it should return A
var A = function(){ console.log(this.name); }
有没有这样的事情?
这个函数是匿名的; 它没有名字。 你可以,但是,给它一个名字:
var A = function a() {};
那么它的名字是通过访问Function.name
:
var A = function a() {};
A.name
> 'a'
我知道这是一个古老的线程,但仍然在搜索结果中。 所以仅供参考:
一个解决方案可以简单地使用堆栈跟踪。
var stack = new Error().stack;
用修剪和分割,以得到所需的值。
没有,有没有像在Javascript中。 这个函数是匿名的,所以它没有名字,你想要的是明确的,因为该功能可以很容易地有任意数量的变量引用它喜欢:
var a, b, c, d;
a = b = function(){ console.log(this.name); };
c = b;
d = c;
a = b = 5;
// a and b no longer refer to the function, but c and d both do
它是什么你实际上是要完成? 我敢肯定有另一种方式来实现这一目标。
有可能在最新版本的Chrome和Firefox如下。 我只建议用于调试目的(如JavaScript的非生产追踪)
var myNameInChrome = /.*Object\.(.*)\s\(/.exec(new Error().stack)[0];
var myNameInFF = new Error().stack.split("@")[0];