JS函数封装
JS Function Wrapping
考虑以下两个代码示例:
// 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()
。由于它是一个函数,因此可以将其注册为事件处理程序。
相关文章:
- 在函数调用中封装数据除了隐藏数据之外还有什么优点
- 为什么封装的Javascript函数有如此巨大的性能差异
- Dijkstra's”;针对GOTO声明的案件“;与函数一样适用于现代调用代码的命名封装
- Javascript:正常函数的命名空间封装
- 为什么将函数引用封装到匿名函数中可以更正'这'指向
- 在封装的JavaScript函数中设置用于重用的私有变量
- 如何将 $http.put 封装到一个函数中,该函数执行某些操作,然后返回通过或失败的承诺
- 为什么我要在jQuery(function ($) { });中封装一个jQuery函数
- 将 chrome API 操作封装到函数中
- 用函数回调封装JavaScript
- 如何使用exports或module.exports将函数构造函数对象方法与原型封装在单个模块中
- 将D3函数封装在对象内部;不起作用.为什么?
- 我必须将$scope基元封装在对象中,但可以在不封装它们的情况下使用函数.为什么?
- 封装Javascript中Try-Catch块中的函数
- 事件处理程序调用Meteor中的封装异步函数
- 用更多的变量javascript封装单个变量回调函数
- 将函数封装在jQuery.removeClass()中是否安全
- 封装的API.对外部javascript函数的调用不工作
- 找不到封装在匿名函数中的递归函数调用
- 打破立即执行的匿名函数的封装