解析JS中定義Function的兩種實用方法
本文向大家描述一下JS兩種定義Function非常常用的方法,雖然兩個種方式定義出來的function調(diào)用的時候結(jié)果一樣,但是中間還是有區(qū)別的,相信本文介紹一定會讓你有所收獲。
JS兩種定義Function非常常用的方法
大家都知道Javascript有兩個種定義Function的方法非常常用。
例如
- functiona(){alert("a")}
- vara=function(){alert("a")}
雖然兩個種方式定義出來的function調(diào)用的時候結(jié)果一樣,但是中間還是有區(qū)別的。舉個簡單的例子,假如我們要重定義a(),而且新的方法要繼承a()里面所有方法并且進行其他擴展的話。就可以明顯看到這兩個方式的區(qū)別了。
1.首先,我們先建立一個臨時的變量來存儲a()
- varb=a;
然后,重新定義a()
***種方式:
- functiona(){
- 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)被重新定義了。所以這里的重定義是有效的。
【編輯推薦】
- JavaScript alert()函數(shù)用法說明
- JS中Array數(shù)組的三大屬性用法揭秘
- prototype.js的Ajax對IE8兼容問題解決方案
- Javascript數(shù)組創(chuàng)建及其常見操作
- JavaScript調(diào)試工具解決IE6等多版本共存問題