关于 JS 闭包,微小的发现与疑问

2016 年 9 月 2 日
 Chigogo
function a(){
  alert(hehe);
}

function b(){
  var hehe="110";
  a();
}

b();

请在脑中调试,写下 alert()的结果。

2696 次点击
所在节点    问与答
15 条回复
Seita
2016 年 9 月 2 日
难道不是 undefined 报错吗
t0byxdd
2016 年 9 月 2 日
undefined
Chigogo
2016 年 9 月 2 日
@Seita
@t0byxdd
为什么我的第一反应是报警电话?
tftk
2016 年 9 月 2 日
因为你没看清 var hehe="110" 和 hehe="110" 的区别。
ChiangDi
2016 年 9 月 2 日
你听过词法作用域吗,这个是最基础的
zhy0216
2016 年 9 月 2 日
... 楼主这不是闭包...
作用域
mogita
2016 年 9 月 2 日
JS 大部头二选一重新学一遍吧。
itisthecon
2016 年 9 月 2 日
这个根本就不是闭包啊
think2011
2016 年 9 月 2 日
出错
allan888
2016 年 9 月 2 日
这确实不是闭包,是作用域的问题,这么搞才是:
function a(){
var hehe="110";
return ()=>{
alert(hehe);
};
}

a()();
echol
2016 年 9 月 2 日
this 不一样
bind 一下就好
不是闭包
shiny
2016 年 9 月 3 日
我感觉你们年轻人啊,还需要学习一个。
Chigogo
2016 年 9 月 3 日
@zhy0216 收到!
@ChiangDi Lexical scope!
@shiny 我们毕竟还 too young !
@echol 搜噶~
YuJianrong
2016 年 9 月 3 日
要问问题就好好问问题,这标题是什么鬼……
g0thic
2016 年 9 月 3 日
这确实是基础的问题了,好好看看书吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/303557

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX