首頁 > web前端 > js教程 > javascript匿名函數實例分析_javascript技巧

javascript匿名函數實例分析_javascript技巧

WBOY
發布: 2016-05-16 16:30:55
原創
1647 人瀏覽過

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

摘要:

本文講解的是javascript最基礎也是最重要的東西--函數,之所以寫這篇文章,是因為面試的時候問到了,也算是溫故而知新了。

先上個例子,如果你看懂了,表示你已經理解了本文要講的。

複製程式碼 程式碼如下:
var f = (function() {

    function f() {return 10;}

    return f();

    function f() {return 20;}

    var f = 30;

})();

console.log(f);

javascript高階程式設計中這樣描述函數--可以封裝任意多條語句,而且可以在任何地方、任何時候呼叫執行。之前介紹過了strict mode,嚴格模式對函數有一些限制:

① 不能把函數命名為eval或arguments
② 不能把參數命名為eval或arguments
③ 不能出現兩個命名參數同名的情況

發生以上情況就會導致語法錯誤,程式碼無法執行。

函數定義

函數定義分為三種

1、建構子

複製程式碼
程式碼如下:


var fun = new Funciton();

複製程式碼
程式碼如下:


function fun() {}

複製程式碼
程式碼如下:

var fun = function() {};

這三種方式都可以定義函數fun。


參數

複製程式碼

程式碼如下:

function sayHi() {

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

}

透過存取arguments物件的length屬性來獲知有多少個參數。函數的length會傳回函數的參數個數。

注意:所有參數傳遞的都是值,不可能透過引用傳遞參數。

函數不能重載,只能重寫

如果定義了兩個名字相同的函數,則該名字只屬於最後定義的函數,舉例:
複製程式碼

程式碼如下:

function add(num) {

    return num 100;

}

function add(num) {

    return num 200;

}

var result = add(100) //300

注意:函數在執行完return語句之後停止並立即退出。


函數種類

複製程式碼

程式碼如下:

function fun() { }

如果呼叫的話,只需要fun()就可以。

匿名函數,顧名思義就是沒有函數名。例如

function() {}

函數調用是透過函數名稱來調用,匿名函數怎麼調用呢?一種是將匿名函數賦給一個變量,讓這個變數充當函數名。另一種是用()來調用,例如下面三種方法

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

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

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

範例:

複製程式碼 程式碼如下:

(function(x, y) {

    alert(x y);

})(2,3);

//alert(5)


2和3將會作為參數傳遞給x和y

下面就來講講最上面的例子,這個例子裡面牽涉到閉包,後面會說

先定義一個變數f,然後賦值一個匿名函數,這裡呢要注意一點函數裡所有變數的定義都會被前置,所以匿名函數裡的執行順序是

複製程式碼 程式碼如下:

var f = (function() {

    var f = 30;

    function f() {return 10;}

    function f() {return 20;}

    return f();

})();


外面的變數f和裡面的變數f不在同一個作用域內(閉包),所以互不影響。因為函數不能重載,所以外面變數f=(function f() {return 20;})();,所以最終輸出的是20。

希望本文所述對大家的javascript程式設計有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板