【命名-表达式函数】的易错点解析!

2018-12-02  本文已影响0人  jasonhsu9

将命名函数赋给一个变量,这个命名函数不能通过命名函数函数名访问,只能通过变量名访问。

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的作用域!

上一篇下一篇

猜你喜欢

热点阅读