我对下面的代码有疑问:
function myfunc () {
return 2 + 2;
}
console.log(myfunc);
有谁知道为什么当我们将“myfunc”记录到控制台时,我们会返回整个函数本身?或者换句话说,“myfunc”是充当保存函数内容的变量,还是只是引用该函数?
因为如果我继续并将其添加到代码中......
myfunc = undefined; //or any other value like myfunc = 20;
...然后由于 myfunc 的值发生了更改,我无法再使用它来调用该函数。那么“myfunc”到底是什么?
答案是是,函数声明在局部函数作用域(或全局作用域,如果声明位于该上下文中)中创建一个符号,其工作方式与使用
var
声明的变量完全相同(尽管函数声明被提升到上面) var
声明)。
现在,函数表达式如下所示:
var x = function helloWorld() { return "hello world"; };
是否不创建本地“helloWorld”符号(除非确实如此)。函数表达式的值是对所创建函数的引用,并且可以像任何其他值一样分配给变量。