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

首頁 > 編程 > JavaScript > 正文

淺談JavaScript function函數種類

2019-11-20 13:34:41
字體:
來源:轉載
供稿:網友

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

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
y97精品国产97久久久久久| 91精品国产综合久久香蕉922| 国产日韩综合一区二区性色av| 亚洲免费影视第一页| 久久久久久久国产| 国产美女久久久| 午夜精品三级视频福利| 欧美日产国产成人免费图片| 精品夜色国产国偷在线| 91精品视频专区| 伊人伊成久久人综合网小说| 欧美日韩亚洲视频一区| 色婷婷久久一区二区| 欧美精品少妇videofree| 欧美精品性视频| 久久久久久久国产| 青青草一区二区| 亚洲精品丝袜日韩| 成人中文字幕+乱码+中文字幕| 欧美久久精品午夜青青大伊人| 国产v综合ⅴ日韩v欧美大片| 欧美精品一区二区三区国产精品| 97国产精品免费视频| 亚洲美女精品久久| 日韩综合视频在线观看| 亚洲a级在线观看| 亚洲日本中文字幕免费在线不卡| 国产精品久久久久免费a∨大胸| 国产日韩中文在线| 亚洲视频一区二区| 57pao国产成人免费| 福利视频导航一区| 午夜精品福利电影| 中文字幕久久久av一区| 成人写真福利网| 欧美怡红院视频一区二区三区| 国产精品久久久久久久久粉嫩av| 精品动漫一区二区三区| 欧美另类在线播放| 欧美福利视频在线观看| 亚洲第一精品电影| 97视频在线看| 97不卡在线视频| 国产成人精品久久二区二区| 久久久综合免费视频| 欧美在线视频一区二区| 国产精品国产三级国产aⅴ9色| 在线午夜精品自拍| 国产日产久久高清欧美一区| 亚洲一区二区精品| 国产精品久久在线观看| 久久精品久久精品亚洲人| 成人黄色片网站| 在线观看成人黄色| 神马久久久久久| 高跟丝袜欧美一区| 亚洲精品456在线播放狼人| 亚洲国产精品va在线| 久久精品国产久精国产思思| 亚洲精品一区二三区不卡| 亚洲春色另类小说| 91po在线观看91精品国产性色| 亚洲另类图片色| 欧美大胆a视频| 欧美激情在线有限公司| 亚洲免费精彩视频| 亚洲成人黄色网| 亚洲欧美日韩中文在线| 国产精品久久久久久久久久久新郎| 日韩美女中文字幕| 亚洲成人中文字幕| 亚洲a∨日韩av高清在线观看| 97不卡在线视频| 欧美亚洲在线播放| 久久亚洲精品中文字幕冲田杏梨| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品高潮粉嫩av| 成人国产精品色哟哟| 欧美在线一区二区三区四| 欧美大胆a视频| 欧美一区视频在线| 精品日韩美女的视频高清| 国产精品99久久久久久www| 日韩精品视频在线免费观看| 久久精品久久久久久| 国产欧美久久一区二区| 日韩激情在线视频| 91精品国产色综合久久不卡98口| 欧美激情一区二区三区成人| 久久国产精品久久久久| 91在线免费网站| 亚洲wwwav| 久久国产天堂福利天堂| 亚洲自拍偷拍网址| 欧洲亚洲免费在线| 51久久精品夜色国产麻豆| 中文字幕精品www乱入免费视频| 日韩午夜在线视频| 欧美丰满少妇xxxxx做受| 中文字幕v亚洲ⅴv天堂| 国产在线一区二区三区| 亚洲wwwav| 欧美自拍视频在线观看| 97碰在线观看| 国产成人综合一区二区三区| 久久精品久久精品亚洲人| 欧美日韩一区二区三区在线免费观看| 国产美女91呻吟求| 中文字幕欧美视频在线| 亚洲大胆美女视频| 日本精品免费观看| 亚洲欧美日韩一区二区三区在线| 亚洲午夜激情免费视频| 国产精品久久婷婷六月丁香| 国产一区二区日韩| 亚洲欧美激情在线视频| 亚洲福利视频久久| 日韩综合视频在线观看| 亚洲一级黄色av| 日韩成人激情影院| 国产欧美日韩精品丝袜高跟鞋| 欧美激情中文网| 欧美一区二区影院| 精品久久久久久国产91| 91视频国产高清| 51精品在线观看| 欧美精品18videos性欧美| 欧美亚洲视频在线观看| 国产欧美精品一区二区| 91超碰中文字幕久久精品| 一区二区三欧美| 亚洲性生活视频| 97热在线精品视频在线观看| 亚洲精品黄网在线观看| 97福利一区二区| 国产午夜精品理论片a级探花| 91久久精品国产91久久| 色偷偷偷综合中文字幕;dd| 国产精品美女免费视频| 亚洲永久在线观看| 777午夜精品福利在线观看| 美日韩精品免费视频| 日韩精品视频免费专区在线播放| 一个人看的www欧美| 中文国产成人精品| 欧美电影免费看| 亚洲人成电影网站| 久久国产精品免费视频| 成人a级免费视频| 日韩国产欧美精品一区二区三区| 在线亚洲男人天堂| 欧美激情日韩图片| 欧美中文在线视频| 亚洲国产91色在线| 91亚洲国产成人久久精品网站| 久久中文字幕一区| 91av视频在线| 国产欧美亚洲精品| 91网站在线免费观看| 日本aⅴ大伊香蕉精品视频| 色综合久久久888| 国产精品久久久久久亚洲调教| 欧美华人在线视频| 亚洲第一精品夜夜躁人人躁|