簡體   English   中英

將事件處理程序附加到函數

[英]Attach event handler to function

在下文中,我將click事件分配給func()。 當我加載頁面時,將顯示警告框。 有人可以解釋為什么觸發該事件嗎? 幕后到底發生了什么? DOM加載時是否觸發與函數相關的所有事件?

<!DOCTYPE html>
<html>

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <script>
        window.onload = function initialize() {
            func.click += handler();
        }

        function handler(e) {
            alert('clicked');
        }

        function func() {

        }
    </script>
</head>

<body>
</body>

</html>

在JavaScript中,函數是一階公民。 意思是,它們的行為就像變量。

handler是保存您的函數的“變量”。 handler() 調用該函數並返回一個值-在這種情況下undefined

func.click 不是事件,它只是一個屬性。 您可以將屬性附加到JavaScript中的任何變量/對象上。 它沒有特殊含義。 另外, func.click不存在,所以執行 +=可能會給您一個錯誤,因為它是 undefined

暫無
暫無

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

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