一、延迟调用 当在一段代码中使用 setTimeout 时,要将一个函数的引用作为它的第一个参数,而将以毫秒表示的时间值作为第二个参数。 但是,传递函数引用的同时无法为计划执行的函数提供参数。可以在代码中调用另外一个函数,由它返回一个对内部函数的引用,再把这个对内部函数对象的引用传递给 setT.....
分类:
编程语言 时间:
2014-10-11 10:48:35
阅读次数:
237
闭包的官方的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。通俗点的说法是:从理论角度:所有的函数。因为它们都在创建的时候就将上层上下文的数据保存起来了。哪怕是简单的全局变量也是如此,因为函数中访问全局变量就相当于是在访问自由变量,这个时候...
分类:
编程语言 时间:
2014-10-10 17:24:54
阅读次数:
299
闭包的官方的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。通俗点的说法是:从理论角度:所有的函数。因为它们都在创建的时候就将上层上下文的数据保存起来了。哪怕是简单的全局变量也是如此,因为函数中访问全局变量就相当于是在访问自由变量,这个时候...
分类:
编程语言 时间:
2014-10-10 12:40:54
阅读次数:
356
本系列作为EffectiveJavaScript的读书笔记。
JavaScript的对象系统从其语法上而言并不鼓励使用信息隐藏(Information Hiding)。因为当使用诸如this.name,this.passwordHash的时候,这些属性默认的访问级别就是public的,在任何位置都能够通过obj.name,obj.passwordHash来对这些属性进行访问。
在E...
分类:
编程语言 时间:
2014-10-09 16:30:08
阅读次数:
186
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Ja...
分类:
编程语言 时间:
2014-10-07 15:20:23
阅读次数:
199
在描述闭包的实现与用途前,需要了解以下一些知识点。 执行上下文(执行上下文环境) 1 console.log(a); //Uncaught ReferenceError: a is not defined 2 3 console.log(b); //undefined4 var ...
分类:
编程语言 时间:
2014-09-30 13:35:59
阅读次数:
220
一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。1 var n=999;2 function f1(){3 alert(n);4 }...
分类:
编程语言 时间:
2014-09-26 21:52:28
阅读次数:
224
1.Javascript的作用域是函数作用域而非块级作用域//C语言#includevoidmain(){inti=2;i--;if(i){intj=3;}printf("%d/n",j);//useanundefinedvariable:j}这是因为c中的作用域是块级的,j是在if后的{ }中定义...
分类:
编程语言 时间:
2014-09-25 22:34:47
阅读次数:
200
最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业。对于初学者来说别说理解闭包了,就连文字叙述都很难看懂。撰写此文的目的就是用最通俗的文字揭开Javascript闭包的真实面目。 一、什么是闭包? “官方”的解释是:所谓“闭包”,指的是一个拥有许.....
分类:
其他好文 时间:
2014-09-25 19:48:37
阅读次数:
153