var f = function g() {
return 23;
};
typeof g();// g is not defined
可是g不是在函数声明的时候定义了吗?
难道同时使用函数声明和函数表达式,函数表达式生成的变量名会覆盖函数声明的变量?
var f = function g() {
return 23;
};
typeof g();// g is not defined
可是g不是在函数声明的时候定义了吗?
难道同时使用函数声明和函数表达式,函数表达式生成的变量名会覆盖函数声明的变量?
g函数被你封印在了f函数里,在外界是访问不到的,你可以在f函数的内部去typeof g,像这样
var f = function g() {
console.log(typeof g);
return 23;
};
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
这个叫Named Function Expression
你给函数取的名字(本例中的g)是可以在函数体内使用的,可以方便你实现递归,然后这个名字还不会和别的变量名互相冲突。