淺談js中調(diào)用函數(shù)時(shí)加不加括號(hào)的問(wèn)題
其實(shí)總結(jié)起來(lái)如下:
函數(shù)只要是要調(diào)用它進(jìn)行執(zhí)行的,都必須加括號(hào)。此時(shí),函數(shù)()實(shí)際上等于函數(shù)的返回值。當(dāng)然,有些沒(méi)有返回值,但已經(jīng)執(zhí)行了函數(shù)體內(nèi)的行為,這個(gè)是根本,就是說(shuō),只要加括號(hào)的,就代表將會(huì)執(zhí)行函數(shù)體代碼。
不加括號(hào)的,都是把函數(shù)名稱作為函數(shù)的指針,用于傳參,此時(shí)不是得到函數(shù)的結(jié)果,因?yàn)椴粫?huì)運(yùn)行函數(shù)體代碼。它只是傳遞了函數(shù)體所在的地址位置,在需要的時(shí)候好找到函數(shù)體去執(zhí)行。
所以一般時(shí)候我們都是采用的是無(wú)括號(hào)的原因。這也是由于括號(hào)的二義性,因?yàn)槔ㄌ?hào)是“函數(shù)調(diào)用運(yùn)算符”,相當(dāng)于在執(zhí)行這樣一個(gè)函數(shù),所以產(chǎn)生的問(wèn)題在理解了之后也就理解了。
另外:除了兩邊不加括號(hào),也可以兩邊都加括號(hào)來(lái)實(shí)現(xiàn)函數(shù)的拷貝,而不是執(zhí)行函數(shù),如果左邊無(wú)圓括號(hào)右邊有圓括號(hào),實(shí)際就是相當(dāng)于產(chǎn)生的是一個(gè)屬性而不是一個(gè)方法了,在調(diào)用的時(shí)候只用屬性名或者函數(shù)名,而不需要再用函數(shù)調(diào)用運(yùn)算符圓括號(hào)了,因?yàn)樗拖喈?dāng)于一個(gè)屬性,當(dāng)然也可以用函數(shù)調(diào)用的方式來(lái)調(diào)用,加上括號(hào),拿上例子來(lái)說(shuō)就是如果寫成person.sayHello =sayHi(),在調(diào)用sayHello的時(shí)候就可以直接用person.sayHello或者person.sayHello()了,二者都實(shí)現(xiàn)相同的效果。
百度知道的回答:
函數(shù)只要是要調(diào)用它進(jìn)行執(zhí)行的,都必須加括號(hào)。此時(shí),函數(shù)()實(shí)際上等于函數(shù)的返回值。當(dāng)然,有些沒(méi)有返回值,但已經(jīng)執(zhí)行了函數(shù)體內(nèi)的行為,這個(gè)是根本,就是說(shuō),只要加括號(hào)的,就代表將會(huì)執(zhí)行函數(shù)體代碼。
不加括號(hào)的,都是把函數(shù)名稱作為函數(shù)的指針,用于傳參,此時(shí)不是得到函數(shù)的結(jié)果,因?yàn)椴粫?huì)運(yùn)行函數(shù)體代碼。它只是傳遞了函數(shù)體所在的地址位置,在需要的時(shí)候好找到函數(shù)體去執(zhí)行。
以上這篇淺談js中調(diào)用函數(shù)時(shí)加不加括號(hào)的問(wèn)題 就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 在html中引入外部js文件,并調(diào)用帶參函數(shù)的方法
- HTML頁(yè)面,測(cè)試JS對(duì)C函數(shù)的調(diào)用簡(jiǎn)單實(shí)例
- Angular外部使用js調(diào)用Angular控制器中的函數(shù)方法或變量用法示例
- 基于js里調(diào)用函數(shù)時(shí),函數(shù)名帶括號(hào)和不帶括號(hào)的區(qū)別
- 超鏈接怎么正確調(diào)用javascript函數(shù)
- javascript嵌套函數(shù)和在函數(shù)內(nèi)調(diào)用外部函數(shù)的區(qū)別分析
- JavaScript實(shí)現(xiàn)同時(shí)調(diào)用多個(gè)函數(shù)的方法
- JavaScript函數(shù)的調(diào)用以及參數(shù)傳遞
- 深入學(xué)習(xí) JavaScript中的函數(shù)調(diào)用
相關(guān)文章
JavaScript使用Math.random()生成簡(jiǎn)單的驗(yàn)證碼
今天小編就為大家分享一篇關(guān)于JavaScript使用Math.random()生成簡(jiǎn)單的驗(yàn)證碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01
JS實(shí)現(xiàn)簡(jiǎn)易的圖片拖拽排序?qū)嵗a
這篇文章主要介紹了JS實(shí)現(xiàn)簡(jiǎn)易的圖片拖拽排序?qū)嵗a,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
js 文字超出長(zhǎng)度用省略號(hào)代替,鼠標(biāo)懸停并以懸浮框顯示實(shí)例
本篇文章主要介紹了js 文字超出長(zhǎng)度用省略號(hào)代替,鼠標(biāo)懸停并以懸浮框顯示,具有一定的參考價(jià)值,有興趣的同學(xué)可以了解一下。2016-12-12
微信小程序防止多次點(diǎn)擊跳轉(zhuǎn)(函數(shù)節(jié)流)
這篇文章主要介紹了微信小程序防止多次點(diǎn)擊跳轉(zhuǎn)問(wèn)題(函數(shù)節(jié)流),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
利用進(jìn)制轉(zhuǎn)換壓縮數(shù)字函數(shù)分享
本文主要介紹了進(jìn)制轉(zhuǎn)換函數(shù),用于壓縮數(shù)字,比如Date.now()這樣的長(zhǎng)數(shù)字,用62進(jìn)制表示,就更短,大家參考使用吧2014-01-01

