当前位置: 首页 > 面试题库 >

扩展Node.js类时花括号

张勇
2023-03-14
问题内容

为什么{EventEmitter} = require 'events'在扩展Node.js类时将变量包装在大括号内,例如?

例如,Trevor Burnham在他的事件驱动CoffeeScript
教程中,通过以下方式扩展了Node的EventEmitter:

{EventEmitter} = require 'events'

class Rooster extends EventEmitter
  constructor: ->
    @on 'wake', -> console.log 'COCKADOODLEDOO!'

(foghorn = new Rooster).emit 'wake' # COCKADOODLEDOO!

问题答案:

这个:

{EventEmitter} = require 'events'

等效于以下JavaScript:

var EventEmitter;
EventEmitter = require('events').EventEmitter;

当您require 'events'使用模块的导出返回一个对象时,这些导出之一就是EventEmitter“类”。使用{EventEmitter}只是EventEmitter退出require 'events'返回对象的惯用快捷方式。您也可以这样说:

EventEmitter = require('events').EventEmitter

若你宁可。当您要提取对象的多个部分时,支撑版本开始派上用场。例如,这:

{a, b} = c

就像这样的JavaScript:

var a, b;
a = c.a;
b = c.b;

CoffeeScript文档的“ Destructuring
Assignment”
部分可能现在就读得不错。



 类似资料:
  • 问题内容: 我对大规模服务器端开发还不陌生。我想使用Node.js编写服务器,但在继续前进之前,我想知道将节点扩展到每秒20个查询的一般原则是什么。 我正在编写的服务将主要是数据库的接口,以及对输入数据的身份验证和确认。 问题答案: 负载均衡 对于最简单的网站,您很可能根本不需要任何扩展。只需一个盒子就能让您覆盖。之后,您应该进行负载平衡,就像您提到的那样,每种架构几乎都是相同的(就像您所说的,您

  • 10 Node.js 的 c++ 扩展 Node 的优点是处理 IO 密集型操作,对于互联网应用来说,很大一部分内容都是 IO 处理(包括文件 IO和网络IO),但是还是有部分功能属于计算密集型操作。如果遇到这种计算密集型操作,推荐的解决方案是使用其他语言来实现,然后提供一个服务,让 Node 来进行调用。不过我们这章要讲的是 Node 的 C++ 扩展,也就是说,我们可以通过这种方式是 Node

  • 问题内容: 所以对于这个项目,我试图在运行时扩展一个类。我想知道,这有可能吗?如果是这样,我该怎么办?是否有用于这些目的的库? 问题答案: CGLib是您要查找的库。它在扩展类或在运行时实现接口方面非常强大,因此许多流行的框架(如Spring或Hibernate)都使用它。 您可以使用以下代码创建类扩展 尽管您可能会使用具有所需逻辑的有用的方法拦截器替换回调。

  • 问题内容: 通常在node.js或javascript中扩展原型类。(js newb) 我正在查看expressjs的源代码,并看到了: 好像是一个外部模块。以上和做类似的事情有什么区别: 而且这仍在尝试扩展属性吗?我有点在这里迷路: 如果是这样,即使使用它,仍然可以使用吗? 或类似的东西?jshint说很可惜。 另外我也看到了吗? 可以吗? 问题答案: 我在看expressjs的源代码 你可能也

  • 问题内容: 我想在node.js中使用.net dll。这是否意味着我需要使用“ CLR托管”(LA)使这些DLL在C / C ++中可用 .NET Framework 4托管接口或 托管公共语言运行时 不幸的是, 在github上创建一个nodejs本机.Net扩展的示例有点令人失望,只需向下滚动到最后一步 将“公共语言运行时支持”选项更改为“无公共语言运行时支持” 你知道我的意思。更正此条款的

  • 问题内容: 我想在2个不同的基本文件中提供相同的内容。 所以我正在尝试这样做: page1.html: page2.html: 问题是我似乎无法同时使用扩展和包含。有什么办法吗?如果没有,我该如何完成以上工作? commondata.html覆盖base1.html和base2.html中指定的块 这样做的目的是提供pdf和html格式的同一页面,但格式略有不同。上面的问题虽然简化了我要尝试做的事