window.addEventListener(‘load’, function() {
// do some work
});
window.addEventListener(‘click’, function() {
// do the same work here
});
上面代码的问题在于我们需要维持做相同工作的两个函数 。然后,如果知道函数是第一类对象,我们可声明单一的命名函数,并根据需要传递引用 。
function doWork() {
// do some work
}
window.addEventListener(‘load’, doWork);
window.addEventListener(‘click’, doWork);
你可以看到,函数作为第一类对象是简单而强大的JavaScript功能 。
函数提供闭合
闭合的概念可能有点难理解,但它对异步/事件编程来说至关重要 。简单来说,闭合是指在其封闭范围定义的变量的函数 。
很多语言允许开发人员在函数中嵌套函数,子函数可引用父函数范围中声明的变量 。使用其他语言的开发人员可能永远不会想到,如果在父函数完成执行后运行时调用子函数会发生什么?这根本不可能,但JavaScript并非如此!
请记住,JavaScript中的函数是第一类对象,所以与分配给变量的任何其他值一样,它们可通过传递来逃避其父函数的限制 。当发生这种情况时,原始封闭范围(词汇范围)内对变量的引用仍将存在 。那么,在以后调用子函数时应该怎么办?
闭合确保子函数能够访问这些变量,只要运行时可能需要调用子函数 。这些变量不会像平常那样作为垃圾回收 。
下面是示例:
你可将此代码复制并粘贴到具有.html扩展名的文件中,并在浏览器中打开 。你会看到一个按钮写着“点击我”,当窗口加载时,onLoad函数会将onClick函数注册到按钮的click事件 。
请注意,onClick不会在onLoad内调用 。相反,应用被传递到API,可在未来调用该函数 。因为onClick是指onLoad函数中声明的button变量,闭合可确保onClick在未来调用时可访问button 。
现在我们已经探讨了JavaScript中异步编程相关的一些核心概念,下面让我们将注意力转移到Node.js中涉及的异步模式 。
常见异步模式
目前,通过Node.js编写异步代码最常见(通用)模式是回调、异步模块和promise 。Node.js 7.6版本升级到8版本,其中引入了被称为异步函数的异步处理新方法 。
异步函数允许Javascript代码异步编写,且可异步执行 。最重要的是,异步结构可按照你期望的方式运作 。对于JavaScript来说,异步函数是重要变革,但promise以及异步处理仍然很重要 。
- 关于创业吧的信息
- 信息数据员是什么意思 免费大数据查询平台
- 物流信息化系统软件有哪些 tms物流运输管理系统使用
- 数据库读写分离的原理 数据库读写分离优缺点
- 免费的mysql可视化工具有哪些 mysql数据库可视化界面
- 关于万客创业可爱雪怎么样的信息
- navicat数据库迁移报错 数据库迁移的三个步骤
- 上海锐速网络科技有限公司 上海速锐信息科技有限公司
- 佘诗曼身高体重 佘诗曼身份信息
- 关于可惜我不是水瓶座的信息