DIV CSS 佈局教程網

js函數調用的方式
編輯:JavaScript基礎知識     

Js函數調用的方式有如下幾種情況:

(1)具名函數直接調用
復制代碼 代碼如下:
function foo()
  {
  }
  foo();

(2)匿名函數通過引用來調用
復制代碼 代碼如下:
  fooRef = function()
  {
  }
fooRef();

(3)沒有引用的匿名函數調用1
復制代碼 代碼如下:
(function()
 {
}());

(4)沒有引用的匿名函數調用2
復制代碼 代碼如下:
 (function()
 {
 })();
 

 (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);  //單值表達式

因而通過了語法檢測...

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved