js的作用域
2017-02-03 18:48
183 查看
首先明确一下:词法作用域是在写代码或者说定义时确定的,而动态作用域是在运行时确定的!
其实 JavaScript 并不具有动态作用域,它只有词法作用域,但 this 机制某种程度上很像动态作用域。
词法作用域关注函数在何处声明,而动态作用域关注函数从何处调用!
词法作用域让 foo() 中的 a 通过 RHS 引用到了全局作用域中的 a,因此输出 2。
其实 JavaScript 并不具有动态作用域,它只有词法作用域,但 this 机制某种程度上很像动态作用域。
function foo() { // 输出 2 console.log( a ); } function bar() { var a = 3; foo(); } var a = 2; bar();
词法作用域关注函数在何处声明,而动态作用域关注函数从何处调用!
词法作用域让 foo() 中的 a 通过 RHS 引用到了全局作用域中的 a,因此输出 2。
相关文章推荐
- JS 无块级作用域
- js变量作用域及可访问性的探讨
- js跨域访问:js变量作用域
- 深入理解JS变量作用域
- js使用函数绑定技术改变事件处理程序的作用域
- js变量作用域
- 有关js的变量作用域和this指针的讨论
- JS作用域与块级作用域
- 对“js变量作用域的疑问”的解答
- js变量作用域及可访问性的探讨
- Js整理备忘(01)—— 变量作用域
- 基础决定高度:JavaScript中的作用域,JS作用域
- Js 整理备忘(01)—— 变量作用域
- 对JS变量作用域的通俗理解
- js变量作用域及可访问性的探讨
- 注意细节js变量作用域
- js 变量作用域
- 有关js的变量作用域和this指针的讨论
- js使用函数绑定技术改变事件处理程序的作用域
- js作用域,内部