UI 编程本质上是事件驱动的。
在此范例中,无论您使用哪种语言,您都必须定义在事件发生时将运行的事件处理程序。在您的示例中,如果您使用不太紧凑的语法,则更具表现力:
$('div').on('click', reaction);
在纯 OOP(例如 java)中,反应将是实现特定接口的对象:
import java.util.Observer;
public class ResponseHandler implements Observer {
...
}
ResponseHandler reaction = new ResponseHandler();
现在,欢迎使用 Javascript!
由于 Javascript 函数是高阶函数,因此将函数作为参数传递是一种常见的做法,它们被命名为回调。在定义此回调函数时,javascript 也非常冗长。
您必须使用完整的函数表达式来定义回调(命名或匿名)。或者,您可以使用 Coffescript 化妆品来浏览这些函数定义(但它们只是语法糖,因为无论如何都存在函数定义)。
您发明的 {} 语法或 coffescript 箭头语法实际上隐藏了实际反应。
$('div').on('click', reaction);
javascript中的反应只是一个函数,一个回调函数。
现在,jQuery 事件是反应器引擎的实现,允许您的应用程序代码与实际引擎完全分离。这意味着 jQuery 应用程序是一组对事件反应的定义:
- 只要文件准备好,就这样做。
- 每当用户点击 div 时,就这样做。
- 每当鼠标进入跨度,做任何事情。