JavaScript權威指南—函數

來源:互聯網
上載者:User
函數定義
function <函數名>(<參數列表>)
{
   <函數體>
}
函數既可以有return語句,也可以沒有。如果函數沒有return語句,它就只執行函數體中的每條語句,然後返回給調用者undefined。

函數可以嵌套在其它函數中,但是不能出現在迴圈或條件陳述式中。(函數直接量例外)

Function建構函式
var <對象名>=new Function(<參數列表>,<函數體>)

函數直接量
var <對象名>=function(<參數列表>)
{
   <函數體>
}
使用函數直接量建立的是未命名函數,但是它的文法也規定可以指定函數名,這在編寫調用自身的遞迴函式時非常有用。
使用函數直接量比使用Function建構函式更方便。

建立一個函數對象,實際上函數名並沒有什麼實質意義,它不過是用來儲存函數的變數的名字,或者說是函數的一個引用。

函數可以做為參數傳遞給其它函數或者把函數作為數值來處理。

函數的實際參數Arguments對象
在一個函數體內,標識符arguments具有特殊含義。它是調用對象的一個特殊的屬性,用來引用Arguments對象。Arguments對象就像數組,可以按照數字擷取傳遞給函數的參數值。
Arguments對象還定義了callee屬性,用來引用當前正在執行的函數。這對未命名的函數調用自身非常有用。
儘管定義函數時有固定數目的具名引數,但當調用這個函數時,傳遞給它的參數資料卻可以是任意的。

函數實際上是一種對象。
函數的length屬性工作表示函式宣告的形參的個數。
每個函數都有prototype屬性,它引用的是預定義的原型對象。原型對象在使用new運算子把函數作為建構函式時起作用,它在定義新的物件類型時起著非常重要的作用。

ECMAScript V3給所有函數定義了call()和apply()兩個方法。使用這兩個方法可以像調用其它對象的方法一樣調用函數。call()和apply()的第一個參數都是要調用的函數的對象,在函數體內這一參數是關鍵字this的值。call()的剩餘參數是傳遞給要調用的函數的值。apply()和call()方法類似,只不過傳遞給函數的參數是由數組指定的。
 例如:
 f.call(o,1,2);
相當於下面的代碼
o.m = f;
o.m(1,2);
delete o.m;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.