JS函数封装

JS Function Wrapping

本文关键字:封装 函数 JS      更新时间:2023-09-26

考虑以下两个代码示例:

// Example 1
$('#myButton').click(function() {
    alert('I was clicked');
});
// Example 2
$('#myButton').click(
    alert('I was clicked');
);

具体来说,为什么示例2不起作用?

您的第二个代码片段不起作用,因为它调用了window对象的alert((方法(返回undefined(,并将其返回的值(因此,undefined(作为处理程序传递给jQuery对象的click((方法。

undefined不是一个有效的事件处理程序,所以click()会忽略它,什么也不做(根据浏览器的不同,可能会将错误记录到控制台(。

您的第一个代码片段传递了一个真正的函数,该函数反过来调用alert()。由于它是一个函数,因此可以将其注册为事件处理程序。