内部函数 解析

来源:互联网 发布:js中循环遍历json对象 编辑:程序博客网 时间:2024/06/06 09:55
<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()是不行的。

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



0 0
原创粉丝点击