原文:从头开始学JavaScript (九)——执行环境和作用域
一、执行环境:定义了变量或者函数有权访问的其他数据,决定了它们各自的行为。每个执行环境都有与之关联的变量对象。
变量对象:保存着环境中定义的变量和函数。
作用域链:保证对执行环境有权访问的所有变量和函数的有序访问。
标识符解析:沿着作...
分类:
编程语言 时间:
2015-01-15 15:32:22
阅读次数:
193
Closuresarefunctionsthatrefertoindependent(free)variables.闭包是以静态方式/词法方式进行存储所有父作用域的一个函数在JavaScript高级程序设计里面通过一个createComparisonFunction()函数和这个函数的作用域链之间的...
分类:
编程语言 时间:
2015-01-12 20:57:34
阅读次数:
457
Object.prototype.x = 10; var w = 20;var y = 30; //console.log(x); // 10 (function foo() { var w = 40; var x = 100; with ({z: 50}) { console.log(...
分类:
其他好文 时间:
2015-01-07 12:22:19
阅读次数:
218
虽然在平时貌似,很习以为常的一些用法但是真要弄清这几个概念的时候,确实费了很大功夫,现在虽然不能说明白但总算有了一些心得。好吧下面直接开始注本文(*)为相关链接例子1.1词法作用域规则:函数的嵌套关系是定义时决定的,而非调用时决定的,即词法作用域,即嵌套关系是由词法分析时确定的,而运行时决定。(*)...
分类:
编程语言 时间:
2015-01-06 17:12:11
阅读次数:
137
最近在看性能优化的问题,看了关于js中条件判断如何进行最大的性能优化的解决方法。编写js代码过程中经常用到的性能优化,可以提高js的执行效率。1.使用局部变量,尽量少用全局变量,因为全局变量是在作用域链中最后一个进行查找的,花费时间长。var a = document.getElementId("a...
分类:
Web程序 时间:
2014-12-31 16:10:25
阅读次数:
184
每一个javascript对象(null除外)都有一个prototype属性,这个属性引用了一个对象,即原型对象,都从原型继承属性。所有通过对象直接量创建的对象都具有同一个原型对象,并可以通过javascript代码Object.prototype获得对原型对象的引用。通过关键字new和构造函数调用...
分类:
其他好文 时间:
2014-12-25 23:37:55
阅读次数:
219
每一段javascript代码(全局代码或函数)都有一个与之关联的作用域链(scope chain)。这个作用域链是一个对象列表或链表,这组对象定义了这段代码“作用域中“的变量。在javascript的最顶层代码中(也就是不包含在任何函数定义内的代码),作用域链由一个全局对象组成。在不包含嵌套的函数...
分类:
其他好文 时间:
2014-12-25 20:25:48
阅读次数:
173
方法链:当方法的返回值是一个对象时,这个对象还可以再调用它的方法。这种方法调用序列中,每次调用的结果都是另外一个表达式的组成部分。比如:基于jQuery库,我们通常会写类似如下代码:$(this).next().show().siblings("li[class!=header]").hide();...
分类:
其他好文 时间:
2014-12-25 17:49:17
阅读次数:
187
js访问变量是从内到外,这条作用域链上面的每个活动变量也是从内到外的,比如一个函数,首先由arguments和函数内部声明的变量,然后是外层的能访问的变量,直至最后window全局对象,当出了这个函数,很熟内部声明的活动对象就会销毁,所以外部滴根本无法访问函数内部声明的对象的。之所以说js会把所有的变量提前也是针对不同的作用域的,在最外面,则是把所有的全局变量和全局的函数声明提前,在函数内部,则是...
分类:
Web程序 时间:
2014-12-23 19:36:40
阅读次数:
227
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript。JavaScript作用域 任何程序设计语言都有作用...
分类:
编程语言 时间:
2014-12-19 14:26:00
阅读次数:
181