javascript中函數調用帶括號和不帶括號的區別

最近鑽研JS的時候遇到了一些問題,實話說JS真的是一門很強大的語言,還需繼續修煉。

今天分享的一點知識是:JavaScript 函數調用時帶括號和不帶括號的區別!!!

例子說明: 
例1.

function init(){
    。。。。。。
}
window.onload = init;



例2:

function fun(){
    return 5
}
var a=fun
var b=fun()
a是fun函數,b是5



那麼到底在使用一個函數時需不需要加上()呢?

函數只要是要調用它進行執行的,都必須加括號。此時,函數實際上等於函數的返回值或者執行效果,當然,有些沒有返回值,但已經執行了函數體內的行爲,就是說,加括號的,就代表將會執行函數體代碼。

不加括號的,都是把函數名稱作爲函數的指針,一個函數的名稱就是這個函數的指針,此時不是得到函數的結果,因爲不會運行函數體代碼。它只是傳遞了函數體所在的地址位置,在需要的時候好找到函數體去執行。


例如window.οnlοad=init;
init函數並不會在這行代碼時就執行,瀏覽器加載文檔時這句話會被加載,會被告知文檔加載完要執行哪個函數,但實際上沒有當時就執行,等到整個文檔加載完成之後纔會通過init這個指針去執行init()。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章