js繫結事件函式帶括號和不帶括號執行效果有什麼不同

2021-03-04 01:51:21 字數 3895 閱讀 1260

1樓:匿名使用者

function f1()

element.onclick=f1(); 函式帶括號就是立即執行

開啟頁面,還沒點呢?f1()執行了彈出haha,這個f1函式沒有返回值。所以element.

onclick=undefined,你再點沒反應(除非你再給返回乙個函式f2),此處不能加括號,事件觸發就是執行,後面只要函式的**---函式名---也就是指標

2樓:匿名使用者

為事件繫結事件函式時不需要帶括號,只需要指定函式名。帶括號是呼叫乙個函式,將函式的返回值繫結為事件的處理函式。

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

3樓:

加括號代表執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()

javascript 函式呼叫時帶括號和不帶括號的區別

4樓:做飯乾乾脆脆

帶括號是函

數,不帶括號是方法,如果是函式,那麼帶()的立即執行。而不帶()的可以理解為c裡的指標,指向這個函式。比如

function func()

var a=func();//執行彈出『aaaa』 ---------------彈出一次

var b=func;//此時b是乙個函式,呼叫b會執行alert('aaaa')

b();//呼叫----------又彈出一次----------一共彈出兩次

5樓:

不帶括號是引數傳遞,引數就是函式本身;帶括號是函式呼叫了,這時候函式會直接執行。

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

6樓:雙魚_守護

function fun()

var a=fun

var b=fun()

a是fun函式,b是5

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

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

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

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

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

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

7樓:匿名使用者

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

function hi();

};var aaa = hi();

var bbb = hi;

如以上**:

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

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

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

8樓:達人遊戲男孩

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

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

9樓:匿名使用者

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

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

function add()

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

為什麼js呼叫函式時,有時不帶括號,有時又帶

10樓:網海1書生

函式呼叫的時候是一定帶括號的(不管有沒有引數)比如說fun1是個函式:

x = fun1()

這是把fun1的執行結果賦值給變數x

如果沒有加括號, 那就肯定不是呼叫,而是把函式本身賦值給另乙個物件變數,相當於把自己複製(或者說轉殖)出另乙個新拷貝。比如

fun2 = fun1

這樣的話,fun2就相當於fun1,呼叫fun2也就相當於呼叫fun1,等於有了兩個完全一樣的函式。

這是因為函式本身也是乙個物件,而物件就意味著是可以複製的。

最後總結一下:函式後面帶括號,表示要立即執行這個函式並返回執行結果;函式不帶括號,則代表函式本身這個物件。

11樓:匿名使用者

使用帶括號的函式名代表呼叫函式

使用不帶括號的函式名代表訪問函式指標

——《javascript高階程式設計》110頁

**js中呼叫函式時加不加括號的問題

12樓:土狗肉前

函式抄只要是要呼叫它進行執行的襲,都必須加括號。此時,函式()實際上等於函式的返

回值。當然,有些沒有返回值,但已經執行了函式體內的行為,這個是根本,就是說,只要加括號的,就代表將會執行函式體**。

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

所以一般時候我們都是採用的是無括號的原因。這也是由於括號的二義性,因為括號是「函式呼叫運算子」,相當於在執行這樣乙個函式,所以產生的問題在理解了之後也就理解了

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

13樓:匿名使用者

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

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

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

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

onclick事件與onload事件js問題

哎,你這個東西好多啊,都不想回答!1 首先你的onclick是在什麼元素上發生的 2 el.onclick function 這句話的意思就是你點選了el這個元素之後執行的方法,執行的方法是什麼效果呢,就是alert a 彈出乙個警告框 首先onclic不會單獨執行,如果你這個寫在js裡面是相當於定...

JS函式中呼叫兩個其它JS函式,其中函式是彈出D

把c方法寫在外面,然後a方法裡面 function a 你可以給b 方法 乙個返回值,假設 返回bool值那麼控制b執行之後執行c。可以這樣寫 if b c 之後就是隱藏div的方法 方法一般是按順序執行的,應該不會出現你說的先執行匯出函式什麼的 如何在js函式中呼叫另外乙個函式 只要是被同乙個ht...

js如何在函式裡面呼叫另函式,JS如何在乙個函式裡面呼叫另乙個函式?

function b function a x,y 如何在js函式中呼叫另外乙個函式 1 乙個js呼叫另外乙個js的方法,最簡單的例子就是jquery的呼叫。首先準備好兩個js檔案。2 然後寫乙個html檔案,通過方法,將兩個js引用到html檔案中。3 處於下方的js檔案,就可以直接呼叫上方js檔...