Ответ 1
Это:
{EventEmitter} = require 'events'
эквивалентен этому JavaScript:
var EventEmitter;
EventEmitter = require('events').EventEmitter;
Когда вы require 'events'
, вы возвращаете объект обратно при экспорте модуля, одним из таких экспорта является EventEmitter
"class". Использование {EventEmitter}
- это просто идиоматический ярлык для вытягивания EventEmitter
из объекта, возвращаемого require 'events'
; вы также можете сказать следующее:
EventEmitter = require('events').EventEmitter
если вы предпочитаете. Скошенная версия начинает пригодиться, когда вы хотите извлечь более одной части объекта; например, это:
{a, b} = c
похож на этот JavaScript:
var a, b;
a = c.a;
b = c.b;
Раздел Destructuring Assignment в документации CoffeeScript может сделать хорошее чтение прямо сейчас.