JS兩種定義Function非常常用的方法

大家都知道Javascript 有兩個種定義Function的方法非常常用。例如
function a(){alert("a")}var a = function(){alert("a")}
雖然兩個種方式定義出來的 function 調(diào)用的時候結(jié)果一樣,但是中間還是有區(qū)別的。舉個簡單的例子,假如我們要重定義 a() ,而且新的方法要繼承 a() 里面所有方法并且進行其他擴展的話。就可以明顯看到這兩個方式的區(qū)別了。

  1. 首先,我們先建立一個臨時的變量來存儲 a()
    var b = a;
    然后,重新定義a()
    第一種方式:
    function a(){ b(); alert("ok");}
    第二種方式:
    a = function(){ b(); alert("ok");}
    這是大家可以嘗試發(fā)現(xiàn)。第一種方式重新定義的 a() 會出現(xiàn)堆棧溢出的錯誤。而第二種方式卻成功保留了原來 a() 所執(zhí)行的腳本,成功 alert 出了 "a" "ok" 的字樣,說明 a() 的方法被重定義了。
    這里就可以很明顯區(qū)分兩個方式的區(qū)別了。定義的順序不同。
    第一種,剛開始其實沒有重新定義 a 這個function 而在里面執(zhí)行了其本身。
    第二種方式, a = function () 這里沒有執(zhí)行到 function 里面的代碼 a 已經(jīng)被重新定義了。所以這里的重定義是有效的。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 《ijs》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 5,637評論 0 7
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,118評論 2 17
  • 第一章: JS簡介 從當(dāng)初簡單的語言,變成了現(xiàn)在能夠處理復(fù)雜計算和交互,擁有閉包、匿名函數(shù), 甚至元編程等...
    LaBaby_閱讀 1,758評論 0 6
  • 單例模式 適用場景:可能會在場景中使用到對象,但只有一個實例,加載時并不主動創(chuàng)建,需要時才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,314評論 1 10
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,642評論 18 399

友情鏈接更多精彩內(nèi)容