淺談js中調(diào)用函數(shù)時加不加括號的問題
其實(shí)總結(jié)起來如下:
函數(shù)只要是要調(diào)用它進(jìn)行執(zhí)行的,都必須加括號。此時,函數(shù)()實(shí)際上等于函數(shù)的返回值。當(dāng)然,有些沒有返回值,但已經(jīng)執(zhí)行了函數(shù)體內(nèi)的行為,這個是根本,就是說,只要加括號的,就代表將會執(zhí)行函數(shù)體代碼。
不加括號的,都是把函數(shù)名稱作為函數(shù)的指針,用于傳參,此時不是得到函數(shù)的結(jié)果,因?yàn)椴粫\(yùn)行函數(shù)體代碼。它只是傳遞了函數(shù)體所在的地址位置,在需要的時候好找到函數(shù)體去執(zhí)行。
所以一般時候我們都是采用的是無括號的原因。這也是由于括號的二義性,因?yàn)槔ㄌ柺恰昂瘮?shù)調(diào)用運(yùn)算符”,相當(dāng)于在執(zhí)行這樣一個函數(shù),所以產(chǎn)生的問題在理解了之后也就理解了。
另外:除了兩邊不加括號,也可以兩邊都加括號來實(shí)現(xiàn)函數(shù)的拷貝,而不是執(zhí)行函數(shù),如果左邊無圓括號右邊有圓括號,實(shí)際就是相當(dāng)于產(chǎn)生的是一個屬性而不是一個方法了,在調(diào)用的時候只用屬性名或者函數(shù)名,而不需要再用函數(shù)調(diào)用運(yùn)算符圓括號了,因?yàn)樗拖喈?dāng)于一個屬性,當(dāng)然也可以用函數(shù)調(diào)用的方式來調(diào)用,加上括號,拿上例子來說就是如果寫成person.sayHello =sayHi(),在調(diào)用sayHello的時候就可以直接用person.sayHello或者person.sayHello()了,二者都實(shí)現(xiàn)相同的效果。
百度知道的回答:
函數(shù)只要是要調(diào)用它進(jìn)行執(zhí)行的,都必須加括號。此時,函數(shù)()實(shí)際上等于函數(shù)的返回值。當(dāng)然,有些沒有返回值,但已經(jīng)執(zhí)行了函數(shù)體內(nèi)的行為,這個是根本,就是說,只要加括號的,就代表將會執(zhí)行函數(shù)體代碼。
不加括號的,都是把函數(shù)名稱作為函數(shù)的指針,用于傳參,此時不是得到函數(shù)的結(jié)果,因?yàn)椴粫\(yùn)行函數(shù)體代碼。它只是傳遞了函數(shù)體所在的地址位置,在需要的時候好找到函數(shù)體去執(zhí)行。
以上這篇淺談js中調(diào)用函數(shù)時加不加括號的問題 就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 在html中引入外部js文件,并調(diào)用帶參函數(shù)的方法
- HTML頁面,測試JS對C函數(shù)的調(diào)用簡單實(shí)例
- Angular外部使用js調(diào)用Angular控制器中的函數(shù)方法或變量用法示例
- 基于js里調(diào)用函數(shù)時,函數(shù)名帶括號和不帶括號的區(qū)別
- 超鏈接怎么正確調(diào)用javascript函數(shù)
- javascript嵌套函數(shù)和在函數(shù)內(nèi)調(diào)用外部函數(shù)的區(qū)別分析
- JavaScript實(shí)現(xiàn)同時調(diào)用多個函數(shù)的方法
- JavaScript函數(shù)的調(diào)用以及參數(shù)傳遞
- 深入學(xué)習(xí) JavaScript中的函數(shù)調(diào)用
相關(guān)文章
javascript下利用數(shù)組緩存正則表達(dá)式的實(shí)現(xiàn)方法
利用組存大法要提高我們程序的性能,讓我們的正則表達(dá)式的創(chuàng)建于執(zhí)行更有效率。2009-12-12js中onclick和addEventListener的區(qū)別詳解
這篇文章深入探討了JavaScript中處理事件的兩種不同方法,即熟悉的onclick和多功能的addEventListener方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-08-08概述如何實(shí)現(xiàn)一個簡單的瀏覽器端js模塊加載器
本文主要對實(shí)現(xiàn)一個簡單的js加載器的步驟進(jìn)行介紹--主要可以分為解析路徑、下載模塊、解析模塊依賴、解析模塊四個步驟。需要的朋友來看下吧2016-12-12Javascript連接數(shù)據(jù)庫查詢并插入數(shù)據(jù)
這篇文章主要介紹了Javascript連接數(shù)據(jù)庫查詢并插入數(shù)據(jù),下面文章圍繞主題展開詳細(xì)內(nèi)容,具有一的參考價值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助2022-03-03關(guān)于ligerui子頁面關(guān)閉后,父頁面刷新,重新加載的方法
今天小編就為大家分享一篇關(guān)于ligerui子頁面關(guān)閉后,父頁面刷新,重新加載的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09ZeroClipboard.js使用一個flash復(fù)制多個文本框
這篇文章主要為大家詳細(xì)介紹了ZeroClipboard.js使用一個flash復(fù)制多個文本框,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06基于JavaScript實(shí)現(xiàn)控制下拉列表
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)控制下拉列表,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05Bootstrap table右鍵功能實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了Bootstrap table右鍵功能的實(shí)現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02