码迷,mamicode.com
首页 > Web开发 > 详细

js 词法作用域揭秘

时间:2018-11-05 23:39:09      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:code   创建   log   执行函数   var   oca   function   oba   执行   

先看段代码:

//词法作用域
var scope = "global";
function fn1(){
    console.log(scope);
}
function fn2(){
    var scope = "local";
    fn1();
}
fn2();    

结果是global

为什么呢?

js是采用词法作用域,即静态作用域。

JavaScript 函数的执行用到了作用域链,这个作用域链是在函数定义的时候创建的。fn1调用fn2,fn2 的作用域链按照书写的位置查找,其中的变量 scope 一定是全部变量,不管何时何地执行函数 fn1(),打印的都是全局的“global”。

 

js 词法作用域揭秘

标签:code   创建   log   执行函数   var   oca   function   oba   执行   

原文地址:https://www.cnblogs.com/amy2017/p/9912168.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!