匿名函数的名称

时间:2015-11-19 09:46:09

标签: javascript

我想获得name of an anonymous function

典型答案是

var aName = function a(){};

这给出了这个

aName.name === "a"        // true

但我发现这也有效:

var a = function a(){};

这给出了这个

a.name === "a"            // true
typeof a === "function"   // true

然而,我觉得我在那里遇到麻烦,因为我正在覆盖名字。使用这种语法会有什么影响吗?

2 个答案:

答案 0 :(得分:3)

这两种方法几乎完全相同,唯一的区别在于,在第二种方法中,您将a视为带有a的变量标识符作为函数标识符(当a在内部使用时a函数。)

关于投影:Variable shadowing in JavaScript

答案 1 :(得分:2)

你没有覆盖任何东西。

可以设置.name属性的唯一方法是使用名称声明函数。

function nameHere() {

}

如果该函数已命名,则name属性将使用该名称。

如果该功能未命名,则为匿名。

var nameHere = function() {

};

没有(正确的)方法来获取分配匿名函数的变量的名称。