内部函数 解析

<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()是不行的。

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

时间: 2024-11-13 08:21:00

内部函数 解析的相关文章

【译】PHP的变量实现(给PHP开发者的PHP源码-第三部分)

文章来自:http://www.aintnot.com/2016/02/12/phps-source-code-for-php-developers-part3-variables-ch 原文:http://blog.ircmaxell.com/2012/03/phps-source-code-for-php-developers_21.html 在"给PHP开发者的PHP源码"系列的第三篇文章,我们打算扩展上一篇文章来帮助理解PHP内部是怎么工作的.在第一篇文章,我们介绍了如何查看P

解析Tensorflow官方English-Franch翻译器demo

今天我们来解析下Tensorflow的Seq2Seq的demo.继上篇博客的PTM模型之后,Tensorflow官方也开放了名为translate的demo,这个demo对比之前的PTM要大了很多(首先,空间上就会需要大约20个G,另外差点把我的硬盘给运行死),但是也实用了很多.模型采用了encoder-decoder的框架结果,佐以attention机制来实现论文中的英语法语翻译功能.同时,模型的基础却来自之前的PTM模型.下面,让我们来一起来了解一下这个神奇的系统吧! 论文介绍及基础描写:

属性动画,代码详细解析

本文假定你已经对属性动画有了一定的了解,至少使用过属性动画.下面我们就从属性动画最简单的使用开始. ObjectAnimator .ofInt(target,propName,values[]) .setInterpolator(LinearInterpolator) .setEvaluator(IntEvaluator) .setDuration(500) .start(); 相信这段代码对你一定不陌生,代码中有几个地方是本文中将要重点关注的,setInterpolator(...).setE

深入解析Javascript闭包

首先给个例子: function PfnOuter(){ var num=999; function PfnInner(){ alert(num); } return PfnInner; } var test=PfnOuter(); test(); //999 上述实例中PfnInner函数就是闭包,闭包简单的理解就是能够读取其它函数内部变量的函数.由于Javascript中只有函数内部的子函数才能读取函数内部的变量,因此闭包也可以简单的理解成定义在一个函数内部的函数,闭包就是将函数内部和函数外

[译] 理解PHP内部函数的定义(给PHP开发者的PHP源码-第二部分)

文章来自:http://www.aintnot.com/2016/02/10/understanding-phps-internal-function-definitions-ch 原文:https://nikic.github.io/2012/03/16/Understanding-PHPs-internal-function-definitions.html 欢迎来到"给PHP开发者的PHP源码"系列的第二部分. 在上一篇中,ircmaxell说明了你可以在哪里找到PHP的源码,它

js中常用的内部函数的使用

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /** * 内部函数 */ function testEval(){ var a = "var first_name = 123"

jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——词法解析

jQuery源码9600多行,而Sizzle引擎就独占近2000行,占了1/5.Sizzle引擎.jQuery事件机制.ajax是整个jQuery的核心,也是jQuery技术精华的体现.里面的有些策略确实很值得学习,先膜拜之,然后细细学习. 在学习Sizzle引擎之前我们先准备一点知识,和先了解Sizzle引擎的一点工作原理. <div id="chua"> <a> <span>chua的测试用例</span> </a> &l

【转载】解析提高PHP执行效率的50个技巧

1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故 把函数加上了双引号). 2.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 3.$row['id'] 的速度是$row[id]的7倍. 4.echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而

解析提高PHP执行效率的50个技巧

1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的”函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故 把函数加上了双引号). 2.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 3.$row[‘id’] 的速度是$row[id]的7倍. 4.echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而