2014-12-19 55 views
0

用于在JavaScript中存储函数名称的数据结构的本质是什么?JavaScript中的命名和未命名函数

换句话说,评估此代码时存储的字符串“Foo”(即函数名称Foo)在哪里?

function Foo() {} 

另外,做匿名函数有一个隐藏的名字吗?

回答

1

哪里是字符串“foo”(即,函数foo的名称)存储

在全球范围内。

您可以通过使用self invoking anonymous function避免这种情况:

(function() { 
    alert('Hello World'); 
})(); 

,或者通过局部范围内关联一个变种的功能:

function myBigFunction() { 
var myfunction = function foo(){alert('Hello World');}; 
} 

没有隐藏名字。

+0

好的,我知道这一点。我正在考虑是否存在类似于保存功能元数据的执行上下文(即解释器内部的数据结构)的东西? – Ben 2014-12-19 11:09:39

+0

@如果有它,它不是可访问的api,afaik的一部分,并且将依赖于特定的解释器。 – NimChimpsky 2014-12-19 11:11:55