1. 程式人生 > >函數和對象的關系

函數和對象的關系

調用 沒有 span 參數 ESS 傳遞 sam 可選 tin

  • JavaScript中對象有以下幾種常用功能:
  1. 對象可以通過字面量來創建。
  2. 對象可以賦值給變量、數組項、或其他對象的屬性。
  3. 對象可以作為參數傳遞給函數。
  4. 對象可以作為函數的返回值。
  5. 對象能夠具有對象創建和分配屬性。
  • JavaScript中函數擁有對象的所有能力:
  1. 通過字面量創建。
    function test(){}
  2. 可以賦值給變量、數組項、或其他對象的屬性。
    1 var test=function(){};
    2 test.push(function(){});
    3 test.data=function(){};
  3. 可以作為參數傳遞給函數。
    function call(test){ test();};
    call(
    function(){});
  4. 可以作為函數的返回值。
    1 function return(){
    2 return function(){};
    3 }
  5. 能夠具有對象創建和分配屬性。
    var test=function(){};
    test.data="hello";

    函數也是對象,唯一的區別是:函數可以被調用。函數會被調用以便執行某種動作。

  • 回調函數

其他代碼會在隨後的某個合適時間點“回過來調用”的函數。

  1. 作用:利用比較器排序。
1 var values=[0,3,2,5,7,4,8,1];
2 values.sort(function(value1,value2){
3 return value1-value2; 4 });
  • 函數定義的四種方式(前兩種最常用):函數的創建方式影響著函數被調用的時間、函數的行為以及函數可以在哪個對象上被調用。
  1. 函數聲明:
  2. 函數表達式
  3. 箭頭函數(ES6新增語法)
  4. 函數構造函數
  5. 生成器函數
  • 函數聲明和函數表達式

1. 函數聲明

   function samurai(){
        //函數體
    }

構成:以強制性function開頭,其後緊跟函數名,以及括號內的可選參數名

2.函數表達式

var a=function(){};

將函數賦給變量。

區別:函數聲明中函數名是強制的,對於函數表達式函數名是可選的。因為函數聲明是獨立語句,函數的基本要求是它能夠被調用,所以它必須有一種被引用方式,只能通過名字。

3.箭頭函數(ES6新增特性)

(param1,param2...)=>expression

接收多個參數並返回表達式的值。

當函數表達式沒那麽簡單時,箭頭操作符後邊需要跟一個代碼塊。

1 var greet=name=>{
2    var hellostring="greeting";
3    return hellostring+name;    
4 }
5 greet("ml"); //"greetingml"

箭頭函數中return和普通函數一樣,如果return後邊沒有語句,返回值是undefined,反之,返回值為return後邊表達式的值。

函數和對象的關系