首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >稳扎稳打JS——自由变量

稳扎稳打JS——自由变量

作者头像
大闲人柴毛毛
发布2018-03-09 16:41:42
1.4K0
发布2018-03-09 16:41:42
举报
文章被收录于专栏:大闲人柴毛毛大闲人柴毛毛

自由变量的作用域在程序运行前就已经确定!

  • 自由变量相当于Java中的全局变量,它在外层作用域中声明,但在内层作用域中使用,如下所示:
var a = 1;
function fn(){
    console.log(a);//a为自由变量
}
  • 当自由变量所属的函数被定义时,自由变量的值就已经确定,是该函数定义处的父作用域中同名变量的值。
  • 在上述示例中,函数内部的a是自由变量,它的值是fn的父作用域中a的值,也就是1。
  • 来看下面的示例:输出结果为1
var a = 1;

function fn1(fn){
  var a = 2;
  fn();
}

function fn2(){
  console.log(a);
}

fn1(fn2);

fn2中的自由变量a在其定义时就已经确定,是它定义处的父作用域中的同名变量的值,而fn2定义处的父作用域为全局作用域,全局作用域中a的值为1,因此输出的结果为1。

  • 注意:自由变量的值一定要去函数定义处找!
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年09月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自由变量的作用域在程序运行前就已经确定!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档