亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

淺談JavaScript function函數種類

2024-05-06 16:13:07
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JavaScript function函數種類,包括普通函數、匿名函數、閉包函數、十分的全面,并附上了示例,這里推薦給大家,希望對大家能有所幫助。
 
 

本篇主要介紹普通函數、匿名函數、閉包函數

1.普通函數介紹
1.1 示例

 

復制代碼代碼如下:

function ShowName(name) {
    alert(name);
}

 

1.2 Js中同名函數的覆蓋

在Js中函數是沒有重載,定義相同函數名、不同參數簽名的函數,后面的函數會覆蓋前面的函數。調用時,只會調用后面的函數。

 

復制代碼代碼如下:

var n1 = 1;
 
function add(value1) {
    return n1 + 1;
}
alert(add(n1));//調用的是下面的函數,輸出:3
 
function add(value1, value2) {
    return value1 + 2;
}
alert(add(n1));//輸出:3

 

1.3 arguments對象

arguments 類似于C#的params,操作可變參數:傳入函數的參數數量大于定義時的參數數量。

復制代碼代碼如下:

function showNames(name) {
    alert(name);//張三
    for (var i = 0; i < arguments.length; i++) {
        alert(arguments[i]);//張三、李四、王五
    }
}
showNames('張三','李四','王五');

 

1.4 函數的默認范圍值

若函數沒有指明返回值,默認返回的是'undefined'

 

復制代碼代碼如下:

function showMsg() {
}
alert(showMsg());//輸出:undefined
  

 

2.匿名函數

2.1 變量匿名函數

2.1.1 說明
可以把函數賦值給變量、事件。

2.1.2 示例

 

復制代碼代碼如下:

//變量匿名函數,左側可以為變量、事件等
var anonymousNormal = function (p1, p2) {
    alert(p1+p2);
}
anonymousNormal(3,6);//輸出9

 

2.1.3 適用場景
①避免函數名污染。若先聲明個帶名稱的函數,再賦值給變量或事件,就造成了函數名的濫用。

2.2 無名稱匿名函數

2.2.1 說明
即在函數聲明時,在后面緊跟參數。Js語法解析此函數時,里面代碼立即執行。

2.2.2 示例

 

復制代碼代碼如下:

(function (p1) {
    alert(p1);
})(1);

 

2.2.3 適用場景
①只需執行一次的。如瀏覽器加載完,只需要執行一次且后面不執行的功能。

3. 閉包函數

3.1 說明

 假設,函數A內部聲明了個函數B,函數B引用了函數B之外的變量,并且函數A的返回值為函數B的引用。那么函數B就是閉包函數。

3.2 示例

3.2.1 示例1:全局引用與局部引用

 

復制代碼代碼如下:

function funA() {
    var i = 0;
    function funB() { //閉包函數funB
        i++;
        alert(i)
    }
    return funB;
}
var allShowA = funA(); //全局變量引用:累加輸出1,2,3,4等
 
function partShowA() {
    var showa = funA();//局部變量引用:只輸出1
    showa();
}

 

allShowA是個全局變量,引用了函數funA。重復運行allShowA(),會輸出1,2,3,4等累加的值。

執行函數partShowA(),因為內部只聲明了局部變量showa來引用funA,執行完畢后因作用域的關系,釋放showa占用的資源。

閉包的關鍵就在于作用域:全局變量占有的資源只有當頁面變換或瀏覽器關閉后才會釋放。var allShowA = funA() 時,相當于allShowA引用了funB(),從而使funB()里的資源不被GC回收,因此funA()里的資源也不會。

3.2.2 示例2:有參閉包函數

 

復制代碼代碼如下:

function funA(arg1,arg2) {
    var i = 0;
    function funB(step) {
        i = i + step;
        alert(i)
    }
    return funB;
}
var allShowA = funA(2, 3); //調用的是funA arg1=2,arg2=3
allShowA(1);//調用的是funB step=1,輸出 1
allShowA(3);//調用的是funB setp=3,輸出 4

 

3.2.3 示例3:父函數funA內的變量共享

 

復制代碼代碼如下:

function funA() {
    var i = 0;
   function funB() {
        i++;
        alert(i)
    }
    allShowC = function () {// allShowC引用匿名函數,與funB共享變量i
        i++;
        alert(i)
    }
    return funB;
}
var allShowA = funA();
var allShowB = funA();//allShowB引用了funA,allShowC在內部重新進行了綁定,與allShowB共享變量i

 

3.3 適用場景

①保證函數funA內里的變量安全,因為外部不能直接訪問funA的變量。

小伙伴們是否對javascript的function函數有所了解了呢,有疑問就給我留言吧。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区三区高清国产| 狠狠操狠狠色综合网| 欧美做受高潮电影o| 国产精品视频网址| 亚洲最大的成人网| 亚洲男人天堂2019| 欧美成人一区二区三区电影| 日韩av在线播放资源| 97在线日本国产| 欧美精品在线免费| 欧美激情一区二区三级高清视频| 亚洲成人黄色在线| 国产精品69av| 伊人久久大香线蕉av一区二区| 欧美性xxxx极品hd欧美风情| 国产成人精品日本亚洲专区61| 久久国产精品影片| 欧美精品免费看| 国产精品久久久久久久久久久久久| 欧美精品免费看| 国产精选久久久久久| 日韩大片在线观看视频| 欧美激情乱人伦一区| 日韩成人av网| 久久视频在线免费观看| 国产精品久久久久福利| 91久久夜色精品国产网站| 日韩av在线天堂网| wwwwwwww亚洲| 国产精品夫妻激情| 久久91亚洲人成电影网站| 2019亚洲男人天堂| 欧美日韩亚洲一区二区三区| 成人福利在线视频| 自拍偷拍亚洲区| 欧美日韩国产影院| 在线观看久久久久久| 精品国产依人香蕉在线精品| 国产精品亚洲综合天堂夜夜| 欧美午夜性色大片在线观看| 久久国内精品一国内精品| 国产亚洲免费的视频看| 亚洲精品中文字幕有码专区| 欧美日韩午夜剧场| 国产欧美一区二区三区在线看| 成人h视频在线| 久久人91精品久久久久久不卡| 国产精品视频公开费视频| 久久99精品视频一区97| 久久久亚洲国产天美传媒修理工| 欧美午夜影院在线视频| 正在播放亚洲1区| 欧美性猛交xxxx富婆弯腰| 欧美日本精品在线| 怡红院精品视频| 91久久中文字幕| 久久高清视频免费| 51视频国产精品一区二区| 欧美精品久久久久久久免费观看| 亚洲最新中文字幕| 亚洲乱码一区av黑人高潮| 国产91精品久久久久| 国产精品久久久久久久久久新婚| 日韩欧美在线观看视频| 亚洲综合在线播放| 国产精品日韩av| 8x拔播拔播x8国产精品| 国产99久久久欧美黑人| 国产精品美女久久久免费| 欧美疯狂性受xxxxx另类| 国产精品视频1区| 国产精品美女免费| 韩国福利视频一区| 日韩美女免费观看| 黑人极品videos精品欧美裸| 狠狠色香婷婷久久亚洲精品| 狠狠综合久久av一区二区小说| 国产suv精品一区二区三区88区| 久久久久国产视频| 精品香蕉一区二区三区| 亚洲精品免费一区二区三区| 国产va免费精品高清在线观看| 黑人巨大精品欧美一区二区一视频| 亚洲精品一区二三区不卡| 欧美成人激情视频免费观看| 日韩欧美在线免费观看| 亚洲欧美精品在线| 国产中文字幕日韩| 日韩久久精品成人| 日韩电影中文字幕一区| 红桃视频成人在线观看| 国产视频999| 欧美成人免费一级人片100| 色偷偷av一区二区三区| 欧美日韩国产页| 狠狠久久五月精品中文字幕| 亚洲在线第一页| 国产精品99久久久久久www| 国产午夜精品理论片a级探花| 国产成人精品免高潮在线观看| 日本道色综合久久影院| 欧美洲成人男女午夜视频| 国产精品免费视频xxxx| 久久艳片www.17c.com| 国产一区二区三区在线| 日本aⅴ大伊香蕉精品视频| 亚洲欧美国产日韩中文字幕| 亚洲一品av免费观看| 久久国产精品久久久久久久久久| www.日韩不卡电影av| 久久久爽爽爽美女图片| 日韩中文av在线| 国产亚洲日本欧美韩国| 国产精品狠色婷| 亚洲国模精品一区| 国产激情久久久久| 欧美资源在线观看| 成人欧美一区二区三区黑人| 欧美日韩国产一中文字不卡| 日韩av日韩在线观看| 秋霞成人午夜鲁丝一区二区三区| 国产中文日韩欧美| 51午夜精品视频| 精品国产老师黑色丝袜高跟鞋| 亚洲国产精品久久久久久| 中文字幕在线精品| 日韩av不卡电影| 欧美在线亚洲在线| 久久人人爽人人爽人人片亚洲| 久久精品欧美视频| 日韩av一区二区在线观看| 亚洲福利在线播放| 亚洲最大成人在线| 国产精品日韩精品| 欧美成人一区在线| 国产精品久久久久久久av电影| 国产精品777| 欧美插天视频在线播放| 欧美日韩亚洲一区二区三区| 亚洲高清免费观看高清完整版| 国产免费一区二区三区在线能观看| 俺去了亚洲欧美日韩| 欧美一区在线直播| 久久久之久亚州精品露出| 国产精品美腿一区在线看| 国产精品成人aaaaa网站| 久久久久久网址| 91日本视频在线| 欧美床上激情在线观看| 综合网日日天干夜夜久久| 久久久久久久av| 欧美专区在线观看| 日韩美女视频在线观看| 国产精品白丝av嫩草影院| 欧美激情一区二区三区在线视频观看| 91精品久久久久久久久久另类| 亚洲精品suv精品一区二区| 91av免费观看91av精品在线| 久久国内精品一国内精品| 亚洲欧美日韩高清| 欧美日本高清视频| 日韩高清电影好看的电视剧电影| 亚洲午夜精品久久久久久久久久久久| 国产精品第3页|