javascript匿名函式的使用簡單介紹

螞蟻小編發表於2017-03-27

所謂的匿名函式就是不具名的函式,因為使用很靈活,所以應用很廣泛,下面就通過程式碼例項介紹一下相關匿名函式的相關內容。

先看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
function func(){
  console.log("螞蟻部落");
}
func();

上面的程式碼是一個有名有姓的函式,再來看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
(function(){
  console.log("螞蟻部落");
})()

上面的程式碼就是匿名函式的使用,再來繼續看相關程式碼:

程式碼例項一:

[JavaScript] 純文字檢視 複製程式碼
!function(){
  console.log("螞蟻部落");
}()

程式碼例項二:

[JavaScript] 純文字檢視 複製程式碼
+function(){
  console.log("螞蟻部落");
}()

程式碼例項三:

[JavaScript] 純文字檢視 複製程式碼
-function(){
  console.log("螞蟻部落");
}()

例項四:

[JavaScript] 純文字檢視 複製程式碼
void function(){
  console.log("螞蟻部落");
}()

匿名函式都是可以正常執行,其實還可以繼續距離,但是這裡就不再繼續了,只要介紹一下其中的原理,那麼萬事就解決了。

上面程式碼分析如下:

1.外面巢狀小括號的情況:這裡小括號是一個分組運算子,它返回括號內表示式的值,如果表示式是一個匿名函式,那麼返回的就是這個匿名函式物件的引用,那麼後面加個括號就是呼叫此函式,道理和func()是一樣的。

2.下面先來看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
function(){
  console.log("螞蟻部落");
}()

上面的程式碼會報錯,為什麼這樣呼叫匿名函式就會報錯呢,這是因為function(){}程式碼會被解讀為函式宣告語句(一段程式碼如果既可以被認為是語句也可以被認為是表示式的時候,優先認為語句),但是函式宣告語法格式不對,因為沒有函式的名稱。當在程式碼的前面加上+運算子的時候,funcion(){}就會被認為是一個表示式,它的返回值就是一個函式物件的引用,後面再跟著小括號就會執行函式了,其他的減號、歎號還是void都是同樣的道理。

相關文章