javascript呼叫函式時,函式名沒加括號

2021-03-04 01:51:21 字數 4099 閱讀 1579

1樓:匿名使用者

事情是這樣的

function move(){} <=> move = function(){}

也就是說 move是個變數,儲存的是函式本身你把函式本身傳給setinterval,他就會每隔100毫秒執行一次 這個函式

而加了括號以後,函式直接就執行了,所以你把move()執行後的值傳給了setinterval,函式move又沒有返回值,那setinterval每100毫秒執行一次「空」,所以啥都沒乾

沒有理解就追問哦~

2樓:旋風小魔頭

這裡是把呼叫的函式當做引數了,當然不能加括號了,否則就是直接執行了。在js中,只要把函式作為另乙個方法的引數,都要這樣寫!!

3樓:醬紫獅子

試試 setinterval('move()',100);

基於js裡呼叫函式時,函式名帶括號和不帶括號的區別

4樓:雙魚_守護

function fun()

var a=fun

var b=fun()

a是fun函式,b是5

js中我們把以上**加粗的部分叫做函式,函式是一種叫做function引用型別的例項,因此函式是乙個物件。物件是儲存在記憶體中的,函式名則是指向這個物件的指標。

var a = fun 表示把函式名fun這個指標拷貝乙份給變數a,但是這不是指函式本身被複製了乙份。

就好比,地圖上上海市(對應函式物件)只有乙個,但指向上海市的路標(對應指標)有很多,而且你還可以繼續新增(複製)無數個指向上海市的路標,但上海市本身不會被複製。

如果函式名後面加上圓括號就表示立即呼叫(執行)這個函式裡面的**(花括號部分的**)。

另外函式宣告和函式表示式在私有作用域寫法方面也會在函式體後面加圓括號表示立即呼叫這個函式,題主可以參看js的模仿塊級作用域的知識。

js事件繫結時 函式名加括號和不加括號有什麼區別

5樓:

加括號代表執bai行這個方法,不du加括號代表zhi把這個函式賦值給某個dao變數。

專屬")

}此時,al代表這個函式的物件,al()就是直接執行了。

var nfun=al;就是讓nfun也指向了al,此時nfun()就相當於al()。

那麼我們來說下obtn.onclick

obtn.onclick也就相當於乙個nfun,只不過它附屬於obtn這個標籤。

等號是賦值操作如果是物件,就會把物件的指向付給變數。al是物件指向,al()就是執行了函式,它最終是個什麼東西,就看函式體返回什麼型別,al裡就乙個alert,沒有return任何東西,那麼就相當於undefined。所以

obtn.onclick=undeined了,你執行就沒反應。

但是如果al的內部返回的是乙個函式比如:

function al()

}obtn.onclick=al()就相當於

obtn.onclick=function()

js呼叫函式時加不加括號的區別

6樓:匿名使用者

這個我加舉個例子給你簡單說明一下吧 這個僅是我的一些個人理解示例**:

function hi();

};var aaa = hi();

var bbb = hi;

如以上**:

aaa 是將 hi() 的執行結果賦值給它,即 return 返回的匿名函式,此時有乙個閉包,則每次呼叫 aaa 時都訪問的同乙個 a,aaa() 第一次執行結果為 1,第二次為2

而 bbb 將是將 hi 這個函式名賦值給它,則呼叫 bbb() 後返回乙個函式表示式,即function();

js裡呼叫函式時,函式名帶括號和不帶括號的區別 ,簡單的理解。

7樓:達人遊戲男孩

不加括號的區別就是~~~~~~~~會報js錯誤,未定義······

js 中setinterval(函式名,時間) 傳遞的函式名什麼時候加括號. 什麼時候不加括號.為什麼效果會不一樣.

8樓:匿名使用者

加括號 表示把updatetime的返回值當做函式傳給setinterval 不加就是把 updatetime這個函式傳給它

9樓:匿名使用者

1. setinterval(updatetime(), 1000);

2. setinterval("updatetime", 1000);

3. setinterval(updatetime.valueof(), 1000);

10樓:匿名使用者

不加括號本來就是語法錯誤呀,你要setinterval這個函式,呼叫這個函式的時候就得函式名+()

js函式被呼叫時加不加括號的區別

11樓:匿名使用者

函式名其實就是指向函式體的指標

不加括號, 可以認為是檢視該函式的完整資訊。如:

function add()

alert(add);//結果為函式體function add()alert(add());//結果為7

javascript中函式呼叫時,什麼時候加括號,什麼時候不加括號?

12樓:匿名使用者

函式呼叫必須加括號,即使無引數,不然怎麼叫做函式呼叫呢。但是當用到return語句時,要注意內function()和function的區別,前容者返回的是函式執行完的值, 後者直接返回的是函式(這個通常用於把函式當做引數傳遞另乙個函式中去)。

javascript是一種基於物件和事件驅動並具有相對安全性的客戶端指令碼語言。同時也是一種廣泛用於客戶端web開發的指令碼語言,常用來給html網頁新增動態功能,比如響應使用者的各種操作。它最初由網景公司(***scape)的brendan eich設計,是一種動態、弱型別、基於原型的語言,內建支援類。

javascript是sun公司的註冊商標。ecma國際以javascript為基礎制定了ecmascript標準。javascript也可以用於其他場合,如伺服器端程式設計。

完整的javascript實現包含三個部分:ecmascript,文件物件模型,位元組順序記號。

javascript 中怎麼不帶括號的呼叫函式

13樓:匿名使用者

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

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

不加括號的,都是把函式名稱作為函式的指標,乙個函式的名稱就是這個函式的指標,此時不是得到函式的結果,因為不會執行函式體**。它只是傳遞了函式體所在的位址位置,在需要的時候好找到函式體去執行。

舉個栗子

var a=function ();

var b=function ()

a(); //觸發了b函式

a; //沒觸發b函式

//再看如果把a定義為乙個即時執行的函式,直接返回bvar b=function();

var a=(function())();

a();    //丟擲錯誤a is not a functiona;      //觸發了b函式

14樓:自殘的廉頗

函式只要bai是要呼叫它進行執du行的,都必須zhi加括號。此時dao,函式實際上等於回函式的返回值或者答執行效果,當然,有些沒有返回值,但已經執行了函式體內的行為,就是說,加括號的,就代表將會執行函式體**。

不加括號的,都是把函式名稱作為函式的指標,乙個函式的名稱就是這個函式的指標,此時不是得到函式的結果,因為不會執行函式體**。它只是傳遞了函式體所在的位址位置,在需要的時候好找到函式體去執行。

javascript中怎麼不帶括號的呼叫函式

15樓:小壞蛋

function a()

$('img').on('click',a);

javascript如何呼叫Jquery呢

這位你好,想呼叫jquery的方法你必須先引用jquery檔案,其次你的這個元素必須是jquery物件才可以。如果缺了上面的兩個條件是不可以的,也就是說js不能直接呼叫jq方法。其中 src 中就是存放 jquery 檔案的相對路徑,也可以使用微軟或谷歌的公共 jquery 庫 cdn 位址。首先在...

在呼叫函式時,函式是怎樣傳值的,c語言函式呼叫時,實參和形參是如何傳遞的?什麼時候要寫指標型變數?求高手指點

在c語言中,實參將值傳給函式中的形參,實現了自上而下的值傳遞,就可以呼叫函式了。舉個淺顯一點的例子吧 include void main int swap int x,int y 在主函式中,將實參a,b的值傳遞給被呼叫函式中的形參x,y,即將a,b分別代入x,y中計算,即達到了呼叫的目的。函式的傳...

jquery怎麼定義函式呼叫函式

jq自定義函 數方法bai和dujs的zhi寫法是一樣的 簡介 jq是js的乙個框架,定義函式,其實就是js定義函式,而呼叫函式時,是通過版事件觸發的權。函式定義 function funtionname 呼叫函式 舉例說明 跟js一樣,定義函式 function a 呼叫 a jquery 如何呼...