原文:深入理解javascript原型和闭包(14)——从【自由变量】到【作用域链】

先解释一下什么是 自由变量 。 在A作用域中使用的变量x,却没有在A作用域中声明 即在其他作用域中声明的 ,对于A作用域来说,x就是一个自由变量。如下图 如上程序中,在调用fn 函数时,函数体中第 行。取b的值就直接可以在fn作用域中取,因为b就是在这里定义的。而取x的值时,就需要到另一个作用域中取。到哪个作用域中取呢 有人说过要到父作用域中取,其实有时候这种解释会产生歧义。例如: 所以,不要在用 ...

2014-09-25 14:50 25 47357 推荐指数:

查看详情

深入理解javascript原型闭包(18)——补充:上下文环境和作用域的关系

本系列用了大量的篇幅讲解了上下文环境和作用域,有些人反映这两个是一回儿事。本文就用一个小例子来说明一下,作用域和上下文环境绝对不是一回事儿。 再说明之前,咱们先用简单的语言来概括一下这两个的区别。 00 上下文环境: 可以理解为一个看不见摸不着的对象(有若干个属性),虽然看不见摸不着 ...

Tue Sep 30 02:32:00 CST 2014 44 22297
深入理解javascript原型闭包(12)——简介【作用域

提到作用域,有一句话大家(有js开发经验者)可能比较熟悉:“javascript没有块级作用域”。所谓“块”,就是大括号“{}”中间的语句。例如if语句: 再比如for语句: 所以,我们在编写代码的时候,不要在“块”里面声明变量,要在代码的一开始就声明好了。以避免发生歧义 ...

Thu Sep 25 01:10:00 CST 2014 9 41389
深入理解javascript原型闭包(13)-【作用域】和【上下文环境】

上文简单介绍了作用域,本文把作用域和上下文环境结合起来说一下,会理解的更深一些。 如上图,我们在上文中已经介绍了,除了全局作用域之外,每个函数都会创建自己的作用域作用域在函数定义时就已经确定了。而不是在函数调用时确定。 下面我们将按照程序执行的顺序,一步一步把各个上下文环境 ...

Thu Sep 25 16:18:00 CST 2014 20 42116
深入理解JavaScript作用域作用域

前言 JavaScript 中有一个被称为作用域(Scope)的特性。虽然对于许多新手开发者来说,作用域的概念并不是很容易理解,本文我会尽我所能用最简单的方式来解释作用域作用域,希望大家有所收获! 作用域(Scope) 1. 什么是作用域 作用域是在运行时代码中的某些特定部分中变量 ...

Fri Mar 15 18:06:00 CST 2019 1 4345
作用域原型闭包等概念理解

1、执行环境及作用域 (1).执行环境: 定义了变量或函数有权访问的其它数据,决定了它们的各自行为。每个执行环境都有一个与之关联的变量对象(variable object, VO),执行环境中定义的所有变量和函数都会保存在这个对象中,解析器在处理数据的时候就会访问这个内部对象 ...

Sun May 10 04:26:00 CST 2015 0 3702
JavaScript执行环境 + 变量对象 + 作用域 + 闭包

闭包真的是一个谈烂掉的内容。说到闭包,自然就涉及到执行环境、变量对象以及作用域。汤姆大叔翻译的《深入理解JavaScript系列》很好,帮我解决了一直以来似懂非懂的很多问题,包括闭包。下面就给自己总结一下。包括参考大叔的译文以及《JavaScript高级程序设计(第3版)》,一些例子引用 ...

Fri Feb 01 07:15:00 CST 2013 3 3115
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM