function a(){ alert(hehe); } function b(){ var hehe="110"; a(); } b();
请在脑中调试,写下 alert()的结果。
1
Seita 2016-09-02 21:55:40 +08:00 1
难道不是 undefined 报错吗
|
2
t0byxdd 2016-09-02 22:00:20 +08:00
undefined
|
4
tftk 2016-09-02 22:36:25 +08:00
因为你没看清 var hehe="110" 和 hehe="110" 的区别。
|
5
ChiangDi 2016-09-02 22:54:07 +08:00
你听过词法作用域吗,这个是最基础的
|
6
zhy0216 2016-09-02 22:56:03 +08:00
... 楼主这不是闭包...
作用域 |
7
ck65 2016-09-02 23:08:38 +08:00
JS 大部头二选一重新学一遍吧。
|
8
itisthecon 2016-09-02 23:40:33 +08:00
这个根本就不是闭包啊
|
9
think2011 2016-09-02 23:50:40 +08:00
出错
|
10
allan888 2016-09-02 23:52:23 +08:00
这确实不是闭包,是作用域的问题,这么搞才是:
function a(){ var hehe="110"; return ()=>{ alert(hehe); }; } a()(); |
11
echol 2016-09-02 23:59:29 +08:00
this 不一样
bind 一下就好 不是闭包 |
12
shiny 2016-09-03 00:03:03 +08:00
我感觉你们年轻人啊,还需要学习一个。
|
13
Chigogo OP |
14
YuJianrong 2016-09-03 09:53:50 +08:00 via iPad
要问问题就好好问问题,这标题是什么鬼……
|
15
g0thic 2016-09-03 12:40:31 +08:00 via iPhone
这确实是基础的问题了,好好看看书吧
|