2014
10-15
10-15
Javascript闭包剖析(通俗易懂)
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。
一、变量的作用域
要理解闭包,首先必须理解Javascript特殊的变量作用域。
变量的作用域无非就是两种:全局变量和局部变量。
Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。
var n=999;
function f1(){
alert(n);
}
f1(); // 999
若是PHP语言中,则需要对变量进行全局化:
$n = 999;
function f1(){
var_dump($n);
}
f1(); //NULL
$n = 999;
function f1(){
global $n;
var_dump($n);
}
f1(); //999