簡體   English   中英

js中'function(event)'是什么意思

[英]What is the meaning of 'function(event)' in js

我不知道“函數(事件)”這句話的意思

Event.add(apple,'click',function(event) {
    Event.stopPropagation(event);
});

參數'event'不是javascript的唯一關鍵字嗎?

關鍵字可以是某個函數的參數嗎?

我理解以下代碼的含義:

function(test) {
alert(test);
}

但我不明白這一點:

功能(事件)...

任何人都可以向我解釋一下嗎?

事件對象總是傳遞給處理程序並包含許多有用的信息。

不同類型的事件提供不同的屬性。 例如,onclick 事件對象包含:

  • event.target - 對被點擊元素的引用。 IE 使用 event.srcElement 代替。
  • event.clientX / event.clientY - 單擊時指針的坐標。

有關單擊了哪個按鈕和其他屬性的信息。 請訪問此鏈接。
它非常簡單地回答了您的所有問題

來源http://javascript.info/tutorial/obtaining-event-object

例子:

就像在 HTML 中您分配了這樣的事件

<button onclick="alert(event)">See the event</button>

然后

function alert(event) {
    // event.type contains whether this event was invoked in the result of a click etc
    // event.target would contain the reference to the element which invoked this method/event
}

它是一個匿名函數,即一個沒有名字的函數,它發送事件對象。 該對象包含有關事件本身的信息。 它總是作為第一個對象/變量傳遞。

它定義了一個匿名函數對象。 這段代碼:

function foo(bar) { ... }

在功能上類似於:

var foo = function (bar) { ... };

(除了在第一種情況下,名稱foo以及函數對象的創建和賦值被提升到作用域的頂部,而在第二種情況下,只有名稱foo被提升;直到賦值時foo才會持有該函數執行。)

實際上,您發布的代碼正在調用Event.add()並將一個函數作為第三個參數傳遞給它,而不是提前聲明該函數,而是創建了內聯函數對象。

在您的問題中編寫代碼塊的另一種方法是:

function handler(event) {
    Event.stopPropagation(event);
}

Event.add(apple, 'click', handler);

除了您問題中的代碼沒有引入handler名稱。


請注意,沒有這樣的方法Event.stopPropagation() 然而, event對象會有一個stopPropagation() ,所以大寫的 E 可能是一個錯字。 很可能意圖是使用function (event) { event.stopPropagation(); } function (event) { event.stopPropagation(); } .

event只是傳遞給事件偵聽器函數的變量,例如Event.addelement.on 它不是保留的(盡管Event是,這就是您可以使用Event.add ),並且您可以隨意命名它。

event參數用於傳遞有關已發生事件的信息(在本例中為點擊apple ),可用於檢索有關該事件的數據或對其進行操作。


function(){...}是一個匿名函數,這意味着你不需要命名它,你可以直接聲明它內聯,並且該函數將作為參數傳遞,就像你說的

function foo (event) {
    ...
}
Event.add(apple, "click", foo);

但你不需要事先聲明它。 它確實具有不可復制的缺點,例如在清除事件處理程序時。

看看事件變量你就明白了:)

function (event) {
  console.log({ event });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM