關於javascript定義function的探討

常見定義函數的方法 函數

使用函數語句來定義,語法以下: spa


  1. function myfunc(arg_1,arg_2,...,arg_n){
  2. // 執行一些語句
  3. }

使用函數表達式來定義,語法以下: 對象

  1. var myfunc=function(arg_1,arg_2,...,arg_n){
  2. // 執行一些語句
  3. }   使用Function類來定義,語法以下:

這是由於function語句在解析時會發生被提高的狀況。也就是說無論function被放置在哪裏,它都會被移動到被定義時所在做用域的頂層。這樣的後果就是放寬了函數必須先聲明後使用的要求。 作用域

也就是說函數聲明方式在代碼執行以前(解釋期)被加載到做用域中,匿名函數方式則需在代碼執行時(運行期)加載。 io

最經常使用的對象是將全局對象window做爲參數傳進去,這樣函數或變量就成爲全局函數和變量了。不少庫函數都是這樣來定義的,jQuery整個庫定義都位於匿名自執行函數中,並傳遞window做爲參數: function

  1. (function(window,undefined){
  2. //jQuery定義
  3. })()
相關文章
相關標籤/搜索