Archive for 十月, 2011

JavaScript 闭包(Closure)

星期三, 十月 12th, 2011
闭包的概念:
所谓闭包,即是由函数和与其相关联的引用环境组合而成的实体。
所谓引用环境是指在执行程序中的某个点所有处于活跃状态的约束所组成的集合。其中的约束是指一个变量的名字和其所代表的对象之间的关系。那么为什么要把引用环境和函数结合起来呢?这主要是因为在支持嵌套作用域的语言中,有时不能简单直接的确定函数的引用环境。这样的语言一般有如下特性:
    a、函数是第一阶值(First-class value),即函数可以作为另一个函数的返回值或参数,还可以作为一个变量的值。
    b、函数可以嵌套定义,即在一个函数内部可以定义另一个函数。
上面的叙述比较概念化,下面通过例子来解释闭包
//code1:
function makePowerFn(power){
 function powerFn(base){
  return Math.pow(base, power);
 }
 return powerFn;
}
var square = makePowerFn(2);
alert(square(3)); // return 9
 

(更多…)

JavaScript命名空间 || 名字空间

星期三, 十月 12th, 2011
命名空间 || 名字空间 :
javascript中的模块和名字空间是不可区分的内容。
JavaScript 的命名空间并不是真正的命名空间, 只是在脚本内部创建一个封闭的小空间, 必须通过特定的空间名称才能对空间内部的代码进行访问。
 
作用:
这样可以防止同名函数和变量发生冲突, 也可以更方便地管理代码, 就像 .NET 的命名空间 (namespace) 和 Java 的包 (package) 一样.
 

(更多…)