将命名函数赋给一个变量,这个命名函数不能通过命名函数的函数名访问,只能通过变量名访问。
var getFoo=function foo(){
console.log("234");
}
getFoo();
foo();
如果调用foo()会报错:
func.jpg
结论:这种函数表达式后面的函数名foo只能在右侧函数体内有效,外部无法使用后面的函数名foo
var getFoo=function foo(){
console.log("234");
console.log(foo);
}
getFoo();
foo.jpg
可见右侧命名函数内部的console.log(foo);成功访问到了foo函数本身。
这种问题可能在面试中问到,主要考查表达式右侧函数名foo的作用域!
网友评论