首页 > 其他 > 详细

词法作用域的理解

时间:2020-05-19 21:53:01      阅读:46      评论:0      收藏:0      [点我收藏+]

 JavaScript 采用的是词法作用域(静态作用域),函数的作用域在函数定义的时候就决定了。

举个例子:

var value = 1;

function foo() {
    console.log(value);
}

function bar() {
    var value = 2;
    foo();
}

bar();

执行 foo 函数,先从 foo 函数内部查找是否有局部变量 value,

如果没有,就根据书写的位置,查找上面一层的代码,也就是 value 等于 1,所以结果会打印 1。

思考:

var a = 10;
var o = {
     a:11,
     b:{
         fn:function(){
              console.log(a);
         }
     }
}
o.b.fn();

执行o.b.fn,先从 fn 函数内部查找是否有局部变量a,

如果没有,就根据书写的位置,查找o上面一层的代码,也就是 a 等于 1,所以结果会打印 10。

词法作用域的理解

原文:https://www.cnblogs.com/ssszjh/p/12919363.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!