JavaScript中var變量引用function與直接聲明function
阿新 • • 發佈:2017-05-07
function 瀏覽器 開發 (內存中根本不存在),變量聲明必須在使用之前,實例中addEventListener根本得不到A!
今天在h5開發app的過程中遇到了一個js問題,function的執行問題
在js中聲明函數function有這兩種方法
var A=function(){...}
或者
function A(){...}
第一種稱之為變量引用函數,因為js允許函數作為一個值傳遞給變量,第二種是直接聲明式函數
一直以為這兩種沒什麽區別,然而,今天在使用過程中發現,當我使用第一種方式聲明function的時候,如果如下這樣:
document.getElementById("xx").addEventListener("tap", A);var A=function(){...}//點擊tap時並不會執行A
原因很簡單,如果使用第一種方法,即函數作為值賦給變量A,必須先聲明A,並且賦值,一個基本的編程常識:沒有聲明過的變量不能使用
然而話說回來,如果是第二種方法,即直接聲明函數的方法,那麽瀏覽器在獲取DOM結束之後,function就已經在那裏了,可調用
var 變量= 方式定義的函數,不能先調用函數,後聲明,只能先聲明函數,然後調用。
function方式定義函數可以先調用,後聲明。
JavaScript中var變量引用function與直接聲明function