js立即執行定義的方法
js 直接執行定義好的方法,出現問題
在我的印象中,js定以後,是可以直接執行的,就是在後面加一個(),標誌著直接執行,但是最近寫了一個方法,用了一下卻不行,如下:
function doSomeThing() { console.info('hello,world'); }();
解決方法
後來查資料,發現這種寫法確實不行,但是確實是可以立即執行的,即用var xxx = function 這種方式,如下:
var someThing = function() { console.info('hello,world'); }();
這種寫法是可以的。
分析原因
js的這兩種寫法,其實是有細微差別的。
第一種,是一種方法的定義
定義方法就是為了後面呼叫。
假如你僅僅是為了就立即執行一次,以後就再也不執行了,那完全沒必要定義方法,直接寫語句就可以了。
所以這裡設計者不讓立即執行,最多你之後再呼叫一次就行了.
第二種,是定義了一個變數,只不過這個變數的型別正好是一個方法。
定義變數就是為了後面使用。
變數的使用場景比較多,假如變數是方法的話,可以執行,但是作為一個變數,也可以用於其他用途,比如作為引數傳給另一個方法。
所以設計者在這裡讓他可以立即執行一次,因為以後可能就不執行了.
總之:就是胡謅一種原因,設計成怎樣都看設計者的心情,就像老子為什麼要寫道德經一樣,因為老子願意!!沒錯,記住就行了.
<span class="timestamp-wrapper"><span class="timestamp"><2019-01-24 Thu></span></span>