首頁  >  文章  >  web前端  >  js函數呼叫的方式_基礎知識

js函數呼叫的方式_基礎知識

WBOY
WBOY原創
2016-05-16 16:49:441135瀏覽

Js函數呼叫的方式有下列幾種情況:

(1)具名函數直接呼叫

複製程式碼 程式碼如下:


程式碼如下:


()
  {  }

  foo();

複製程式碼


程式碼如下:


程式碼如下:


fooRef = function()  {  }fooRef();
(3)沒有引用的匿名函數呼叫1




複製程式碼

程式碼如下:

 {
}());



(4)沒有引用的匿名函數呼叫2


複製程式碼 程式碼如下:
程式碼如下:



 (function()
 {
 })();
 

js函數呼叫的方式_基礎知識 (5)沒有引用的匿名函數調用3 

複製代碼

代碼如下:

 void function()

 {

 }();

圖1.1,圖1.2顯示了這兩種表達式的運算過程是不一樣的,圖1.1中是用強制運算子使函數呼叫運算得以執行,圖1.2中則用強制運算子運算"函數直接量宣告"這個表達式,並傳回一個函數本身的引用,然後透過函數呼叫運算"()"來操作這個函數引用。而上面的最後一個匿名函數呼叫void function(){}();則用於呼叫函數並忽略回傳值,運算子void用於使其後面的函數表達式執行運算。如果我們不使用"void"與強制運算"()",程式碼能否執行:

(1)function(){}()  //使用''()"強制呼叫 (2)function(){}();  //使用";"來執行語句 腳本引擎會認為function(){}是函數宣告,從而通不過語法偵測,程式碼被解析成這樣: function(){};(); function(){}被當作聲明被解釋,而"();"被獨立成一行來解釋,因而會報語法錯誤,為什麼知道是"();"導致的錯誤?我們改成如下碼: function(){}(1); 這樣就會被引擎解釋為: fucntion(){}; (1);  //單值表達式 因而通過了語法檢測...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn