关于JavaScript中的函数即价值概念的困惑

时间:2019-05-06 19:43:53

标签: javascript

当我们声明一个命名函数时,让我们在google chrome控制台中说,如果调用它,那么该函数的内容将被执行。如果我们为该函数创建引用,又如何尝试使用该函数命名该引用,我将得到ReferenceError。

function foo() {
 console.log("something");
}
foo(); // will print out "something"
var x = function bar() {
 console.log("something x");
}
x(); //will print "something x"
bar(); //throws ReferenceError, bar is not defined.

1 个答案:

答案 0 :(得分:1)

在上面的代码function bar(){...}中,当分配给变量x时,它充当函数表达式而不是函数声明。函数bar成为x的局部变量。根据{{​​3}}

  

名称可以与函数表达式一起提供,并且可以在函数内部用于引用自身,

var x = function bar() {
 console.log(bar)
 console.log("something x");
}
x();