javascript函数读取变量作用域简单介绍
分类:实例代码
关于作用域的基本概念可以参阅javascript作用域详解一章节。
但是下面再介绍一个细节,可能不少的朋友都没有注意到,因为看到不少人在提问。
先看一个代码实例:
var num=10; function foo(){ console.log(num); } function func(){ var num=100; foo(); } func();
上面的输出结果是10,可能很多人认为是100。
他们的思路是:foo()函数中没有变量num的定义,所以向上查找,于是在func函数中找到。
其实并不是这么回事,foo()函数要去创建这个函数的作用域取值,而不是在调用它的父作用域。