<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>New Web Project</title>
<script type="text/javascript" charset="UTF-8">
/**
* closure闭包
* 概念:闭包与函数有着密切的关系,它是函数的代码在运行过程中的一个动态环境,是一个运行期的、动态的概念。
* 所谓闭包,是指词法表示包括不必计算的变量的函数,也就是说,该函数能够使用函数外定义的变量。
* 在程序语言中,所谓闭包,是指语法域位于某个特定的区域,具有持续参照读写
* 位于该区域内自身范围之外的执行域上的非持久型变量能力的段落。这些外部执行域的非持久变量神奇地保留他们闭包最
* 最初定义或创建时的值。
*/
/*
var name="xiao A";
var obj={
name:"xiao B",
getName:function(){
return function(){
return this.name;
}
}
};
alert(obj.getName()());//全局作用域。
var k=obj.getName();
alert(typeof k);
*/
/*
var name="xiao A";
var obj={
name:"xiao B",
getName:function(){
//this总是指向调用者
var o = this;
return function(){
return o.name;
}
}
};
obj.getName();
var k = obj.getName();
*/
//闭包,一个函数可以访问另外一个作用域的变量。
//特性:封闭性,private 起到一个保护变量的作用。
//一级作用域
function f(x){//二级作用域
var temp = x;//局部变量
return function(x){//三级作用域
temp +=x;//又被使用了。
alert(temp);
}
}
var a=f(50);
// alert(a);
a(5);
a(10);
a(20);
</script>
</head>
<body>
<h1>New Web Project Page</h1>
</body>
函数—09Closure闭包
最新推荐文章于 2024-06-05 06:27:22 发布