本文主要介绍普通函数、匿名函数、闭包函数。

1。一般功能介绍

1.1例

复制代码代码如下所示:

功能showName(name){

警报(名称);

}



相同名称函数在1.2 JS中的覆盖率

在js中,函数是一个没有重载的函数,定义相同的函数名,不同的参数签名,下面的函数将覆盖前面的函数。

复制代码代码如下所示:

var = 1;



添加函数(中){

返回N1 + 1;

}

警报(添加(N1));调用以下函数,输出:3



功能(value1,value2){添加

返回值+ 2;

}

警报(添加(N1));输出:3



1.3个参数对象

参数,类似于C #的参数、操作参数:对传入函数的参数个数大于参数个数在定义的时间。

复制代码代码如下所示:

功能shownames(name){

警报(名称);

对于(var i = 0;i < arguments.length;i++){

警报(参数{ });/张/张,Li Si,Wang Wu

}

}

shownames('zhang三、四里,王五);



1.4函数的缺省范围

如果函数没有指定返回值,默认的返回is'undefined

复制代码代码如下所示:

功能showmsg(){

}

警报((showmsg)); / /输出:未定义

U3000 U3000

2。匿名函数



2.1变量匿名函数

2.1.1描述

函数可以分配给变量或事件。

2.1.2实例

复制代码代码如下所示:

变量匿名函数,可以作为变量、事件等保留。

无功anonymousnormal =功能(P1,P2){

警报(P1 + P2);

}

AnonymousNormal(3,6); / /输出9



2.1.3应用场景

(1)避免函数名污染。如果首先用一个名称声明一个函数,然后将一个值赋值给变量或事件,这将导致函数名的滥用。

2.2无名匿名函数

2.2.1描述

也就是说,当函数被声明时,参数紧跟在下面。当JS语法解析这个函数时,内部代码立即执行。

2.2.2实例

复制代码代码如下所示:

(函数(P1){)

警报(P1);

})(1);



2.2.3应用场景

(1)只需要执行一次。如果加载了浏览器,只需要执行一个在后面不执行的函数。

三.关闭功能



3.1解释

假设函数A声明函数B,函数B引用函数b之外的一个变量,函数a的返回值是函数B的引用,所以函数B是一个闭包函数。

3.2例

3.2.1实例1:全球和本地参考参考

复制代码代码如下所示:

函数系(){

var I=0;

函数FunB(FunB){ / /关闭功能

++;

警报(一)

}

返回FunB;

}

var =福纳(allshowa); / /全局变量引用:累计产量的1、2、3、4



功能partshowa(){

var =福纳(昭和); / /局部变量引用:只输出1

昭和();

}



allshowa是全局变量,引用函数系。跑allshowa()多次,并且输出累计值,如1,2,3,4。

执行功能partshowa()(),因为内部声明的局部变量只昭和参考系,执行后,对行动范围的关系,释放资源的昭和占领。

要关闭的关键是行动的范围:资源的全局变量占用时才会释放页面转化或浏览器关闭。当VAR allshowa =系(),对allshowa等效是指FunB(),以便在FunB资源()是不可回收的GC,所以在资源的资源()不。

3.2.2例2:有一个参考的关闭功能

复制代码代码如下所示:

功能(arg1,arg2){系

var I=0;

函数FunB(步){

i = i +步骤;

警报(一)

}

返回FunB;

}

无功allshowa =系(2, 3); / /电话系arg1 = 2,2 = 3

AllShowA(1); / /叫FunB步= 1,输出1

AllShowA(3); / /叫FunB步= 3,输出4



3.2.3例3:在母函数系共享变量

复制代码代码如下所示:

函数系(){

var I=0;

函数FunB(){

++;

警报(一)

}

allshowc =功能(allshowc){ / /援引匿名功能,共享变量i和FunB

++;

警报(一)

}

返回FunB;

}

无功allshowa =系();

无功allshowb =福纳(); / / allshowb指系,allshowc是反弹的内部和股变我allshowb



3.3应用场景

(1)确保在函数系的变量是安全的因为外部变量不能直接访问的资源。

这些人知道Javascript的函数功能吗让我留言。