函数名可以作为变量吗?

问题描述 投票:0回答:1

我对下面的代码有疑问:

function myfunc () {
return 2 + 2;
}

console.log(myfunc);

有谁知道为什么当我们将“myfunc”记录到控制台时,我们会返回整个函数本身?或者换句话说,“myfunc”是充当保存函数内容的变量,还是只是引用该函数?

因为如果我继续并将其添加到代码中......

myfunc = undefined; //or any other value like myfunc = 20;

...然后由于 myfunc 的值发生了更改,我无法再使用它来调用该函数。那么“myfunc”到底是什么?

javascript function javascript-function-declaration
1个回答
2
投票

答案是,函数声明在局部函数作用域(或全局作用域,如果声明位于该上下文中)中创建一个符号,其工作方式与使用

var
声明的变量完全相同(尽管函数声明被提升到上面
var
声明)。

现在,函数表达式如下所示:

var x = function helloWorld() { return "hello world"; };

是否创建本地“helloWorld”符号(除非确实如此)。函数表达式的值是对所创建函数的引用,并且可以像任何其他值一样分配给变量。

© www.soinside.com 2019 - 2024. All rights reserved.