标签:
闭包特性:可以让定义好的函数作用域在调用时发生改变,具体说,调用运行时,可以让(定义时)作用域外其他函数访问到本函数的局部变量甚至参数。举例代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
function personOne(){
var name="huanhuan";
function test(){return name;}
return test;
}
function personTwo(){
return personOne()(); //personOne()返回属性test()函数对象,再执行一次取得值,为"huanhuan"
}
console.log(personTwo()); //"huanhuan"
</script>
</body>
</html>
personOne()定义完成时作用域链已确定,外部函数不能访问其内部局部变量及参数,但在personTwo()调用时发生了改变,可以访问到前者的局部变量。这个特性是个技巧点,也容易带来一些麻烦。
标签:
原文地址:http://www.cnblogs.com/zhu-xingyu/p/5222483.html