函數聲明與函數表達式


定義函數的方式有兩種:一種是函數聲明,一種是函數 表達式

function functionName(arg0,arg1,arg2){
  //函數體      
}

  首先是function關鍵字,然后是函數的名字,這就是指定函數名的方式。在Firefox,Safari,Chrome和Opera都給函數定義了一個非標准的name屬性,通過和這個屬性可以訪問到給函數指定的名字。這個屬性的值永遠等於跟着function關鍵字后面的標記符

//只有在Firefox,Safari,Chrome和Opera有效

alert(functionName.name) // 'function'

第二種函數表達式 常見的形式為

var functionName=function(arg0,arg1,arg2){
    //函數體
}

  MDN上函數表達式的語法是

  參數:

  name:函數名稱。可被省略,此種情況下的函數是匿名函數。函數名稱只是函數體中的一個本地變量

  paramN:被傳遞給函數的一個參數名稱。一個函數至多擁有255個參數

  statements 構成函數體的語句

  函數表達式非常類似於函數聲明,並且兩者擁有幾乎相同的語法。函數表達式與函數聲明最主要區別是函數名稱,在函數表達式中可省略它,從而創建匿名函數。一個函數表達式可以被用作一個IIFE(Immediately Invoked Function Expression,即時調用的函數表達式),它一旦定義就運行。

    var p = function fn(){
		   console.log(fn)
		   console.log('1')
	}
	p()    

  經過上面定義的總結,所以上例,其實就是一個函數表達式,而不是一個函數聲明再賦值給變量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM