首页 > 代码库 > 内部函数 解析

内部函数 解析

<span style="font-size:18px;">function outerFn(){
document.write("outer");
var i=0;
function innerFn(){
document.write("inner");
i++;
document.write(i);
}
return innerFn;
} //要想使用inner()这个内部函数,不可以在outerFn()外部,直接引用</span><span style="font-size:18px;">outerFn()</span><span style="font-size:18px;">//</span><span style="font-size:18px;">outerFn()</span><span style="font-size:18px;">;是错误的
</span><span style="font-size:18px;">var innerObj=outerFn(); //将outerFn()返回的函数变量赋给innerObj
</span><pre name="code" class="javascript"><span style="font-size:18px;">innerObj();//调用一次内部函数</span><span style="font-size:18px;">outerFn</span><span style="font-size:18px;">()
</span><pre name="code" class="javascript"><span style="font-size:18px;">innerObj();</span><span style="font-size:18px;">//第二次调用内部函数</span><span style="font-size:18px;">outerFn</span><span style="font-size:18px;">()</span><span style="font-size:18px;"></span>

最近在研究闭包和作用域链。很多概念还看不到,现在还不是总结的时候。

上面的那个函数式经常被闭包及相关知识解释的例子,之前看不到,后来明白了,赶紧来总结此部分。

innerFn()是outerFn()的内部函数,要执行此内部函数,直接在outerFn()外应用innerFn()是不行的。

以上的例子是通过父函数的返回值来获得内部函数的引用,进而执行内部函数。



内部函数 解析