国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

javascript匿名函數(shù)實(shí)例分析

2024-05-06 16:10:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了javascript匿名函數(shù),以實(shí)例形式詳細(xì)分析了javascript匿名函數(shù)的定義、用法及注意事項(xiàng),具有很好的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下
 
 

本文實(shí)例講述了javascript匿名函數(shù)的用法。分享給大家供大家參考。具體分析如下:

摘要:

本文講解的是javascript最基礎(chǔ)也是最重要的東西--函數(shù),之所以寫(xiě)這篇文章,是因?yàn)槊嬖嚨臅r(shí)候問(wèn)到了,也算是溫故而知新了。

先上個(gè)例子,如果你看懂了,說(shuō)明你已經(jīng)理解了本文要講的。

復(fù)制代碼代碼如下:
var f = (function() {

 

    function f() {return 10;}

    return f();

    function f() {return 20;}

    var f = 30;

})();

console.log(f);

 

javascript高級(jí)程序設(shè)計(jì)中這樣描述函數(shù)--可以封裝任意多條語(yǔ)句,而且可以在任何地方、任何時(shí)候調(diào)用執(zhí)行。之前介紹過(guò)了strict mode,嚴(yán)格模式對(duì)函數(shù)有一些限制:

① 不能把函數(shù)命名為eval或arguments
② 不能把參數(shù)命名為eval或arguments
③ 不能出現(xiàn)兩個(gè)命名參數(shù)同名的情況

發(fā)生以上情況就會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤,代碼無(wú)法執(zhí)行。

函數(shù)定義

函數(shù)定義分為三種

1、構(gòu)造函數(shù)

復(fù)制代碼代碼如下:
var fun = new Funciton();

 

2、普通定義

復(fù)制代碼代碼如下:
function fun() {}

 

3、函數(shù)式定義

復(fù)制代碼代碼如下:
var fun = function() {};

 

這三種方式都可以定義函數(shù)fun。

參數(shù)

函數(shù)不介意傳遞進(jìn)來(lái)多少個(gè)參數(shù),也不在乎傳進(jìn)來(lái)的參數(shù)是什么數(shù)據(jù)類(lèi)型。即便你定義的函數(shù)只接收兩個(gè)參數(shù),在調(diào)用這個(gè)函數(shù)時(shí)也未必一定要傳遞兩個(gè)參數(shù)。可以傳遞一個(gè)、三個(gè)甚至不傳遞參數(shù)。原因是參數(shù)在內(nèi)部是用一個(gè)數(shù)組來(lái)表示的。在函數(shù)體內(nèi)可以通過(guò)arguments對(duì)象來(lái)訪問(wèn)參數(shù)數(shù)組,舉個(gè)例子

復(fù)制代碼代碼如下:
function sayHi() {

 

    alert("Hello " + arguments[0] + "," + arguments[1]);

}

 

通過(guò)訪問(wèn)arguments對(duì)象的length屬性來(lái)獲知有多少個(gè)參數(shù)。函數(shù)的length會(huì)返回函數(shù)的參數(shù)個(gè)數(shù)。

注意:所有參數(shù)傳遞的都是值,不可能通過(guò)引用傳遞參數(shù)。

函數(shù)不能重載,只能重寫(xiě)

如果定義了兩個(gè)名字相同的函數(shù),則該名字只屬于最后定義的函數(shù),舉個(gè)例子:

 

復(fù)制代碼代碼如下:

function add(num) {

 

    return num + 100;

}

function add(num) {

    return num + 200;

}

var result = add(100) //300

 

注意:函數(shù)在執(zhí)行完return語(yǔ)句之后停止并立即退出。

函數(shù)種類(lèi)

函數(shù)分為兩種一種是有名函數(shù),另一種是匿名函數(shù)。例如下面的有名函數(shù)

復(fù)制代碼代碼如下:
function fun() {

 

}

 

如果調(diào)用的話(huà),只需要fun()就可以。

匿名函數(shù),顧名思義就是沒(méi)有函數(shù)名。例如

function() {}

函數(shù)調(diào)用是通過(guò)函數(shù)名來(lái)調(diào)用,匿名函數(shù)怎么調(diào)用呢?一種就是將匿名函數(shù)賦給一個(gè)變量,讓這個(gè)變量充當(dāng)函數(shù)名。另一種就是用()來(lái)調(diào)用,例如下面三種方法

1、(function() {return;}());

2、(function() {return;})();

3、function() {return;}();

例子:

 

復(fù)制代碼代碼如下:

(function(x, y) {

 

    ?alert(x + y);

})(2,3);

//alert(5)


2和3將會(huì)作為參數(shù)傳遞給x和y

 

下面就來(lái)講講最上面的例子,這個(gè)例子里面涉及到閉包,后面會(huì)說(shuō)

首先定義一個(gè)變量f,然后賦值一個(gè)匿名函數(shù),這里呢需要注意一點(diǎn)函數(shù)里所有變量的定義都會(huì)被前置,所以匿名函數(shù)里的執(zhí)行順序是

復(fù)制代碼代碼如下:

var f = (function() {

 

    ?var f = 30;

    function f() {return 10;}

    function f() {return 20;}

    return f();

})();


外面的變量f和里面的變量f不在同一個(gè)作用域內(nèi)(閉包),所以互不影響。?因?yàn)楹瘮?shù)不能重載,所以外面變量f=(function f() {return 20;})();,所以最終輸出的是20。

 

希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 南靖县| 扬州市| 文昌市| 武汉市| 天台县| 县级市| 威海市| 江西省| 盘山县| 城步| 潞西市| 周口市| 阳高县| 丹阳市| 万全县| 岐山县| 报价| 通道| 如东县| 东乡族自治县| 东莞市| 桂林市| 沙雅县| 新沂市| 红河县| 高淳县| 常山县| 鱼台县| 清河县| 崇明县| 五华县| 广饶县| 随州市| 绥阳县| 柏乡县| 金塔县| 承德县| 开鲁县| 永修县| 四川省| 延长县|