作用域的概念对于初学者来说可能比较难,它涉及到变量,函数等基础知识,理解作用域对于理解作用域链和闭包是非常重要的,今天闲来一起复习下作用域: 1、定义 作用域(scope)指的是变量可访问的范围,在JavaScript中只有两种作用域:一个全局作用域,另一个是函数作用域。全局作用域指变量在任何函数外 ...
分类:
其他好文 时间:
2017-09-09 15:25:06
阅读次数:
158
闭包常用的3种中方法 1. 通过在函数中创建函数,并返回来延迟作用域链的存在时间(掌握执行环境/作用域链/this/活动对象/arguments/全局对象概念的理解) 2. 模仿块级作用域 (javascript不存在块级作用域) for(var i=0;i<10;i++){ alert(i);}a ...
分类:
其他好文 时间:
2017-09-07 21:30:03
阅读次数:
223
一、命名空间和作用域 A、命名空间分为三种: 1.全局命名空间 2.局部命名空间 3.内置命名空间 三种命名空间的加载值顺序 1.全局命名空间——在运行程序时运行,不在函数内部,从上到下按顺序加载 2.局部命名空间——程序运行中,调用函数才加载 3.内置命名空间——运行程序之前已加载 三种命名空间的 ...
分类:
编程语言 时间:
2017-09-03 20:18:51
阅读次数:
139
每个JavaScript函数都表示一个对象, 确切的为一个Function的实例对象。Function对象跟其他对象一样,拥有可以编程访问的对象,和不可以通过代码访问的仅供JavaScript引擎存取的内部属性。其一为[[Scope]], 由ECMA-262标准第三版定义。 作用域链: 内部属性[[ ...
分类:
Web程序 时间:
2017-09-02 20:44:16
阅读次数:
210
理解作用域 理解作用域链是Js编程中一个必须要具备的,作用域决定了变量和函数有权力访问哪些数据。在Web浏览器中,全局执行环境是window对象,这也意味着所有的全局变量或者方法都是window对象的属性或方法。当一个函数在被调用的时候都会创建自己的执行环境,而这个函数中所写的代码就开始进入这个函数 ...
分类:
编程语言 时间:
2017-08-29 22:58:16
阅读次数:
256
1 /* 2 js当中 每个函数都是一个执行环境 3 函数调用函数会进入新的执行环境结束之后再回来当前 4 5 作用域链: 在内部的作用域中可以访问和修改外部的变量 6 在外部作用域不能修改或者访问内部的变量 7 */ 8 var a = 1; 9 10 function outer(){ 11 b... ...
分类:
编程语言 时间:
2017-08-25 12:13:26
阅读次数:
133
问题: 1.说一下对变量提升的理解 2.说明this几种不同的使用场景 3.如何理解作用域 4.实际开发中闭包的应用 知识点: js没有块级作用域只有函数和全局作用域,如下代码: 当前作用域没有定义某个变量,所以要去它的父级作用域找,这样的就是作用域链 作用域和闭包-执行上下文 this介绍: th ...
分类:
Web程序 时间:
2017-08-23 15:04:10
阅读次数:
286
前面的话 javascript里的关系又多又乱。作用域链是一种单向的链式关系,还算简单清晰;this机制的调用关系,稍微有些复杂;而关于原型,则是prototype、proto和constructor的三角关系。本文先用一张图开宗明义,然后详细解释原型的三角关系 图示 概念 上图中的复杂关系,实际上 ...
分类:
其他好文 时间:
2017-08-23 13:39:55
阅读次数:
226
闭包:打破一般的作用域链的形式,使外部可以访问到局部作用域变量的内容 闭包的形式一: 在f1中返回一个函数,该函数访问了f1的局部变量,并将其return,这样在外部调用f1的返回值,即执行该函数,就可以间接的访问到f1的局部变量a。这样打破了传统的作用域链的形式,这就是闭包。 闭包形式二: ...
分类:
编程语言 时间:
2017-08-23 00:39:42
阅读次数:
139
说实话,前面一节的原型和原型链在当初学的时候并没有很头疼,对着高级编程第三版撸了几遍就理解透了,闭包这一节真的挺头疼的,很惭愧,看了差不多十来遍吧,还翻看了网上的其他博客和解释文档,五花八门的表达方式,虽然核心思想都一致,但是实在是不能做到自己的理解,后来结合函数作用域链,好不容易有点开窍,趁着热乎 ...
分类:
编程语言 时间:
2017-08-21 23:03:28
阅读次数:
357