摘要: testtttt 阅读全文
posted @ 2016-11-25 16:11 Lbeta 阅读(56) 评论(0) 推荐(0) 编辑
摘要: [转]Javascript 闭包 简介 Closure 所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。 闭包是 ECMAScript (JavaScript)最强大的特性之一,但用好闭包的前提是必须理解闭包。闭包的创建相对容易,人们甚至会在不经意间创建闭包,但这些无意创建的闭包 却存在潜在的危害,尤其是在比较常见的浏览器环境下。如果想要扬长避短地使用闭包这一特性,则必须了解它们的工作机制。而闭包工作机制的实现很大程度上有 赖于标识符(或者说对象属性)解析过程中作用域的角色。 关于... 阅读全文
posted @ 2012-06-11 18:27 Lbeta 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 理解JavaScript作用域链 理解JavaScript作用域至关重要,它是理解闭包的前提条件。 先通过理解execution context来了解javascript在执行代码之前和之后做了什么工作,可以说理解了理解execution context之后再来理解javascript的作用域就是非常简单的事了。 1.作用域链产生的时机 作用域链:由一组对象按照规定的顺序组成。 全局作用域链:在执行全局代码之前,创建全局execution context过程中产生了作用域链,此作用域链(列表)仅仅包含了一个全局对象。 函数作用域链:在调用函数时,执行函数体代码之前,为函数创建... 阅读全文
posted @ 2012-06-09 13:07 Lbeta 阅读(234) 评论(1) 推荐(0) 编辑
摘要: 理解JavaScript执行环境(Execution Context)1.概念执行环境(Execution Context)是一个抽象的概念,用于规定ECMAScript实现时要求的行为。ECMAScript规范没有指明任何关于如何实现execution context,但是execution context包含参考在规范定义的结构的相关属性,所以execution context可以被设想成(甚至被实现)带有属性(虽然这些属性不是public属性)的对象。2.分类所有的JavaScript代码都是在execution context中执行的。全局代码(内置的执行代码,通常作为一个JS文件或H 阅读全文
posted @ 2012-06-08 23:14 Lbeta 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 任何函数内部都包含了arguments对象,其表现与数组类似,可以使用下标访问arguments的数据成员。arguments主要用于保存调用函数的实际参数数据。如:function test() { alert(arguments[0]); //1 alert(arguments[1]); //2}test(1, 2, 3)函数的形参(命名参数)列表也是保存传给函数的实参数据,arguments与形参数据是同步的。arguments对象与形参并不是指向同一个内存空间,而是不同的内存空间而存储的数据是同步的。修改arguments[n],相等于修改了第n个形参的值(假设从0开始),反过来同理。 阅读全文
posted @ 2012-06-04 12:56 Lbeta 阅读(676) 评论(2) 推荐(1) 编辑