1. 程式人生 > >Js事件繫結時,函式名加括號和不加括號有什麼區別

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

一,在js程式碼裡

    加括號代表呼叫,執行這個方法;

    不加括號目的是引用,代表把這個函式賦值給某個變數。

      在下面程式碼裡:

  1.1   btn.onclick=aa;是正常繫結事件,理解為:

<input id="btn" type="button" onclick="aa()" value="點選變色">

    點選觸發執行 function aa(){...};

  1.2  btn.onclick=aa();理解如下;

         btn.onclick就相當於一個click事件的引用物件,只不過它附屬於btn這個標籤。

          等號是賦值操作如果是物件比如A,就會把物件A的指向賦給click事件的引用物件。aa是物件指向,aa()就是執行了函式,它最終是個什麼東西,就看函式體返回什麼型別,function aa()裡有①和②,還有一個return,那麼就是 --->先把aa()裡①和②執行,在將 函式bb()return 給 btn.onclick;所以就相當於btn.onclick=bb;
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>函式括號</title>
</head>
<body>

<div id="test">函式括號那回事</div>
<input id="btn" type="button" value="點選變色">

<script type="text/javascript">
   function aa(){
 
	   alert("function aa()函式");  //  ① 

	   document.getElementById("test").style.color="red";  //  ②
      
	   return function bb(){ //  ③
		   alert("function aa()函式裡面的function bb()!")
	  }
   }
   function change(){
       var ip=document.getElementById("btn");
       btn.onclick=aa;   //正常繫結事件,onclick觸發執行 ①彈出①對話方塊,②變色;不會執行③
       //btn.onclick=aa();  //頁面載入,直接呼叫aa(),執行 ①彈出①對話方塊,②變色,但是onclick觸發時,會執行③
   }
   change();  //呼叫change,直接執行
</script>
</body>
</html>

相關推薦

Js事件函式括號括號什麼區別

一,在js程式碼裡     加括號代表呼叫,執行這個方法;     不加括號目的是引用,代表把這個函式賦值給某個變數。       在下面程式碼裡:   1.1   btn.onclick=aa;是正

JS事件事件監聽事件委託

        在JavaScript的學習中,我們經常會遇到JavaScript的事件機制,例如,事件繫結、事件監聽、事件委託(事件代理)等。這些名詞是什麼意思呢,有什麼作用呢? 事件繫結 要想讓 JavaScript 對使用者的操作

js做固釘效果 在滾動事件碰到的坑DOMMouseScroll

在使用vue做 “固釘” 效果時,碰到了以下巨坑 我是這樣子繫結滾動監聽事件的: if (document.addEventListener) { document.addEventListener('DOMMouseScroll', this.onScroll, false)

js事件事件事件代理的一些理解

一、事件繫結: 事件繫結的三種方法: 1、在DOM中直接繫結: //<ul id="parent-list" onclick="printName(this)"> //this指當前發生時

js事件

DOM3級事件中定義了9個滑鼠事件。 mousedown:滑鼠按鈕被按下(左鍵或者右鍵)時觸發。不能通過鍵盤觸發。 mouseup:滑鼠按鈕被釋放彈起時觸發。不能通過鍵盤觸發。 click:單擊滑鼠左鍵或者按下回車鍵時觸發。這點對確保易訪問性很重要,意味著onclick事

JS - 迴圈實現點選轉換CSS類

<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>案例</title> <style type="text/css">

Javascript中事件函式括號括號區別

今天在學習javascript中的時候遇到了一個問題,我將此問題簡化,抽取部分程式碼,如下: 說明:#fname為一個按鈕,test是一個普通函式 test函式 function test() { alert("執行test函式"); }

讓xamarin的Entry支援Nullable型別

xamarin.forms預設情況下,如果屬性是double?型別,繫結到Entry上,是無法實現雙向繫結的, 可以自定義Converter實現雙向繫結 public class NullableConverter : IValueConverter { public

原生js事件事件委託

最近常在移動端開發,由於不是大型站點,不需要使用vue等庫,也不需要引用jquery和zepto等。 寫得最多得就是各種元素選擇器和事件繫結,操作下來也是有點煩人。這時候懷念起jquery的美好來了,但是僅為了這個引用這麼大個庫,實在時下不了手,思考了一下,直

【v-on】一個元素多個事件以及一個事件多個函式的兩種寫法

本文程式碼主要講述了v-on繫結事件函式傳參,一個元素繫結多個事件的兩種寫法,一個事件繫結多個函式的兩種寫法,修飾符的使用。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8

js 事件

給一個物件繫結一個事件處理函式的第一種形式 obj.onclick = fn; <!DOCTYPE html> <html>     <head>         &

js事件的幾種方式與on()、bind()的區別

一直不是很理解幾種js事件繫結之間的區別與聯絡,今天百度了一下,在此做一總結: 1.如果只是簡單的繫結一個事件,可以直接寫在行內,點選執行一個函式,例如 <button onclick="alert('點我啊!')">點我啊</button> 2.也

SpringMVC 資料表單輸入值與實體資料型別一一對應的問題

SpringMVC 資料繫結的一個小小的錯誤,竟浪費了不少時間,趕緊記下來,免得重蹈覆轍。 Model public class Student{ private String name;

原生js事件事件移除

/** * @description 事件繫結,相容各瀏覽器 * @param target 事件觸發物件 * @param type 事件 * @param func 事件處理函式 */ function addEvents(target, type

js事件的幾種方式

原文地址:https://www.cnblogs.com/javawebstudy/p/5266168.html 要想讓 JavaScript 對使用者的操作作出響應,首先要對 DOM 元素繫結事件處理函式。所謂事件處理函式,就是處理使用者操作的函式,不同的操作對應不同的名

原生JS事件onclickaddEventListener

onclick繫結方式 優點: - 簡潔 - 處理事件的this關鍵字指向當前元素 缺點: - 不能對事件捕獲或事件冒泡進行控制,只能使用事件冒泡,無法切換成事件捕獲 - 一次只能對一個元素繫結一個事件處理

js事件事件監聽、事件委託

一、JavaScript事件:事件是文件或瀏覽器中發生的特定互動瞬間! 事件流: 1、事件冒泡:事件冒泡即事件最開始由最具體的元素(文件中巢狀層次最深的那個節點)接收,然後逐級向上傳播至最不具體的節點(文件)。 text–>div–&

事件中的call()方法apply()方法

今天對於call方法和apply方法有些懵,所以去看了些別人的總結,感覺有了點概念,把一些大佬寫的東西中自己感覺易懂的解釋和經典的案例記錄一下。 定義 call方法: 語法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定義:呼叫一個物件的一個

js中new函式後帶括號括號區別

用new建立建構函式的例項時,通常情況下new 的建構函式後面需要帶括號(譬如:new Parent())。 有些情況下new的建構函式後帶括號和不帶括號的情況一致,譬如: function Parent(){ this.num = 1; } co

js函式括號括號賦給物件屬性的區別

注意: 1.js為物件新增函式時,不要在函式後面加()。一旦加了括號是表示將函式的返回值賦給物件的屬性。 例:function test(){   document.writeln("我是js函式") } var obj = new Object(); obj.info=new function(