返回值为函数的函数(Functions that Return Functions)
在前几篇文章已经介绍了函数要有返回值,即使没有写return,函数也会返回一个undefine。
接下来看看返回值为函数的情况
function a(){
alert('a');
return function(){
alert('b');
};
}
在这个例子中,a函数执行了alert('a'),以及它返回了另一个函数b。关于返回b的调用我们可以这样来用。
var newFunc = a();
newFunc();
执行结果为 alert a和alert b
如果不想赋值调用这个函数也可以简写如下
a()();
函数的自身重写
因为函数可以返回一个函数,那就意味着可以用一个新的函数替代一个旧的函数,根据前一个例子来改进一下
a=a();
第一次运行函数a,就alert a,再次运行函数a,就alert b,这个功能对初始化非常有用。这个函数a重写了自己,避免在以后调用初始化的功能(上个例子为alert a)。
当然我们还有更简单的方法来重写a函数那就是在a函数的内部重写它,来看看代码
function a(){
alert("a")
a=function(){
alert("b");
}
}
只有在初次调用a函数才会执行 alert a 在以后的调用中,都会执行alert b
下面结合前几节看个综合的例子
var c = function(){
function a(){
alert('a')
}
function b(){
alert('b')
}
a();
return b;
}();//alert('a');
c();//alert('b');
这个例子有以下几点需要注意
1. a函数,b函数是内部函数。
2. return b 返回的是个函数的引用。
3. 子调用函数重写了函数c。
如果能明白这个例子,关于内部函数,子调用函数和返回值为函数的函数就可以都理解了。
分享到:
相关推荐
今天研究一个小问题: 怎么拿到JavaScript异步函数的返回值? 1.错误尝试 当年未入行时,我的最初尝试: [removed] function getSomething() { var r = 0; setTimeout(function() { r = 2; }, 10); return r; ...
Python还被语言流行指数的编译器Tiobe将它被评为最受欢迎的编程语言,20多年来首次将Python置于Java、C和JavaScript之上,真的非常荣幸了. 自从20世纪90年代初Python语言诞生至2022年,它已被逐渐广泛应用于系统...
函数的也不需要像c#那样要求所以路径都需要有返回值(这个不像c#语言,而且c#的方法也不需要在方法名前面在 function关键字) function add(i, j) { //现在只是声明了一个函数在这里,只有调用到它的时候它才会被...
使用简单的注释记录函数的所有作业和返回值
1.本文将深入探讨JavaScript函数的基本原理、特点,并通过多个示例展示函数的使用流程和步骤。读者将学习到如何定义函数、编写函数体、调用函数以及处理返回值。此外,文章还将对函数的参数、作用域以及闭包等高级...
Python还被语言流行指数的编译器Tiobe将它被评为最受欢迎的编程语言,20多年来首次将Python置于Java、C和JavaScript之上,真的非常荣幸了. 自从20世纪90年代初Python语言诞生至2022年,它已被逐渐广泛应用于系统...
Delphi中调用JavaScript方法,并获得返回值,具体看资源里的DEMO程序。
本章的重点是用户定义的JavaScript函数的定义和调用。另外还有一点比较重要,即JavaScript支持很多内部的函数,诸如类Array的方法eval()、parseInt()和sort()等。客户端JavaScript还定义了其他函数,如document....
C++开发的Com组件调用JavaScript函数,传递多个参数给JS函数,并从JS函数中获取返回值
Python还被语言流行指数的编译器Tiobe将它被评为最受欢迎的编程语言,20多年来首次将Python置于Java、C和JavaScript之上,真的非常荣幸了. 自从20世纪90年代初Python语言诞生至2022年,它已被逐渐广泛应用于系统...
带返回值的函数 好吧,我们把alert(sum)一行改成下面的代码: return sum; return后面的值叫做返回值。使用下面的语句调用函数就可以将这个返回值存储在变量中了。 result = add2(3,4); 该语句执行...
javascript版本的轨道六根数计算卫星位置的函数 /* 参数例子: orbitPara = { o: 20,//升交点赤径(单位度) i: 30,//轨道倾角(单位度) w: 10,//近地点角距(单位度) a: 7000e+3,//半长轴(单位米) e: 0.5,//离心...
js的日期函数详解js的日期函数详解js的日期函数详解js的日期函数详解js的日期函数详解js的日期函数详解
Python还被语言流行指数的编译器Tiobe将它被评为最受欢迎的编程语言,20多年来首次将Python置于Java、C和JavaScript之上,真的非常荣幸了. 自从20世纪90年代初Python语言诞生至2022年,它已被逐渐广泛应用于系统...
典型的JavaScript函数定义: function 函数名称(参数表){ //函数执行部分 return ; } //注意:参数列表直接写形参名即可 return语句:return返回函数的返回值并结束函数运行 函数也可以看做数据来进行传递 参数...
一般形式的函数调用,是常见的函数调用方式,一般用于“没有返回值的函数”。 语法: 函数名称([参数1, 参数2, ……]) [参数1,参数2…]是可选的,用于表示实参列表,其值可以是零个、一个或多个。 5.2.2 函数的...
返回值:true为含有汉字,false为不含有汉字 ******************************************/ function checkChinese(str) { return ( escape(str).indexOf("%u")!=-1 ); } //函数名:fucCheckPostcode //功能介绍:...
QT与javascript交互数据的实现 一、数据从QT流向JS 1、QT调用JS的函数,JS通过形参获得QT的值 2、JS调用QT的函数,QT函数的返回值进入JS 二、数据从JS流向QT 1、JS调用QT的函数,QT通过形参获得JS的值 2、QT调用JS...