美文网首页
作用域链简单说明

作用域链简单说明

作者: Coding破耳 | 来源:发表于2018-03-25 23:02 被阅读0次

在函数在执行的过程中,对于函数内部需要使用到的变量
1.先从自己内部找变量,比如:

function sum(a,b){
    console.log(a+b);
}

sum(3,4);

函数sum()中使用到的两个变量,都是函数内部有的,直接使用;
调用sum(3,4)就直接输出7

  1. 如果找不到,再从创建当前函数所在的作用域去找
var b = 3;
function sum(a){
    console.log(a+b);
}

sum(3);

函数sum()中使用到的两个变量,a是函数内部有的,b在函数内部没有,查找创建sum方法时所在作用域,得到b = 3,直接使用;
调用sum(3)就直接输出6

  1. 创建当前函数所在的作用域找不到,再往上找
var c = 2;
function fn(x)
{
  function sum(a){
    console.log(a+c);
  }
  sum(x);
}

fn(3);

调用fn(),其实是调用sum();函数sum()中使用到的两个变量,a是函数内部有的,c在函数内部没有,查找创建sum方法时所在作用域,没找到;继续往上查找,得到c = 2,直接使用;
调用sum(3)就直接输出5

  1. 注意找的是变量的当前的状态
var c = 2;
function fn(x)
{
  function sum(a){
    console.log(a+c);
  }
  sum(x);
}
c = 10;
fn(3);

以上用例,执行fn()时c已经被赋值为10;因此输出13

相关文章

  • 作用域链简单说明

    在函数在执行的过程中,对于函数内部需要使用到的变量1.先从自己内部找变量,比如: 函数sum()中使用到的两个变量...

  • javascript:作用域链浅析

    前言 为可以大概了解作用域链是个什么东西,本文着重说明作用域链,尽量不引入其他的概念。 变量对象 在说作用域链前,...

  • 作用域和作用链

    关键词:作用域作用链 作用域 js中没有块级作用域 全局作用域,函数作用域太简单,就不演示(≧▽≦)/啦啦啦 作用...

  • 作用域链

    什么是作用域链? 在理解什么是作用域链之前,我们需要了解一个概念,那就是作用域。那么什么是作用域呢?简单的说,作用...

  • 基于JavaScript作用域链的性能调优

    JavaScript作用域和作用域链,说起来很简单,但是细细分析,大有玄机。只能真正理解了作用域链原理,才能写出更...

  • 作用域链和闭包

    在谈作用域链之前先说一下与作用域链关系紧密的执行环境和作用域。 作用域:作用域指的是变量的适用范围。 作用域链:作...

  • 作用域链

    作用域链 把多个作用域串起来便形成了作用域链;每个函数在初始化完成之后就拥有了各自的作用域链,但此时的作用域链中并...

  • web性能实践

    一. 作用域 前面我们了解作用域概念的以及作用域链是如何运作的。 随着作用域链中的作用域数量的增加,访问当前作用域...

  • JS_0: 执行环境和作用域链

    JavaScript,目前对于执行环境和作用域链的理解 什么是作用域链? 要讲作用域链就得先讲执行环境。 每个函数...

  • js 总结七07-19

    作用域 全局 局部 作用域链 闭包

网友评论

      本文标题:作用域链简单说明

      本文链接:https://www.haomeiwen.com/subject/atokcftx.html