JavaScript 闭包
函数),因而这些变量也是该表达式的一部分。@H_502_15@
@H_502_15@
@H_502_15@
函数变量的一个引用,当函数返回时,其处于激活状态。
函数返回时,一个没有释放资源的栈区。
允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内。 @H_502_15@
函数变量的一个引用,当函数返回时,其处于激活状态。
函数返回时,一个没有释放资源的栈区。
允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内。 @H_502_15@
函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。@H_502_15@
函数在包含它们的外部函数之外被调用时,就会形成闭包。@H_502_15@
函数作用域中变量的函数。
Meta Insert title here<span style="color: #0000ff"></
<span style="color: #800000">body<span style="color: #0000ff">><span style="color: #0000ff"><
<span style="color: #800000">script <span style="color: #ff0000">type<span style="color: #0000ff">="text/javascript"<span style="color: #0000ff">>
<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">平常创建的方式
<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">一个函数包含另一个函数,内部函数使用外部函数的变量或者参数。
<span style="background-color: #f5f5f5; color: #0000ff">function<span style="background-color: #f5f5f5; color: #000000"> myFunction() {
<span style="background-color: #f5f5f5; color: #0000ff">var<span style="background-color: #f5f5f5; color: #000000"> x <span style="background-color: #f5f5f5; color: #000000">= <span style="background-color: #f5f5f5; color: #000000">10<span style="background-color: #f5f5f5; color: #000000">;
<span style="background-color: #f5f5f5; color: #0000ff">return <span style="background-color: #f5f5f5; color: #0000ff">function<span style="background-color: #f5f5f5; color: #000000">() {
x<span style="background-color: #f5f5f5; color: #000000">++<span style="background-color: #f5f5f5; color: #000000">;
alert(x);
}
}</span><span style="background-color: #f5f5f5; color: #0000ff">var</span><span style="background-color: #f5f5f5; color: #000000"> a </span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #000000"> myFunction(); a(); </span><span style="background-color: #f5f5f5; color: #008000">//</span><span style="background-color: #f5f5f5; color: #008000">11</span>
<span style="background-color: #f5f5f5; color: #000000"> a();
<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">12
<span style="background-color: #f5f5f5; color: #000000"> a(); <span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">13
<span style="background-color: #f5f5f5; color: #008000">//<span style="background-color: #f5f5f5; color: #008000">闭包可以使一个局部的变量或者参数不会被回收,以便我们长期的使用。
<span style="color: #0000ff"></<span style="color: #800000">script<span style="color: #0000ff">><span style="color: #0000ff"></<span style="color: #800000">html<span style="color: #0000ff">>
@H_502_15@
----------------------- end 2018年9月29日13:51:07 -----------------------