我正在使用Node.js服务器,我正在使用咖啡脚本进行开发。
这对咖啡脚本有何影响?
EventEmitter = require('events').EventEmitter
util.inherits(Connector, EventEmitter)
是吗?
EventEmitter = require('events').EventEmitter
class @Connector extends EventEmitter
我基本上是在尝试将emit
添加到Connector
。
类似的东西:
this.emit('online')
答案 0 :(得分:2)
是的,extends
与util.inherits
类似。
Implementation of util.inherits
:
inherits = function(ctor, superCtor) {
ctor.super_ = superCtor;
ctor.prototype = Object.create(superCtor.prototype, {
constructor: {
value: ctor,
enumerable: false,
writable: true,
configurable: true
}
});
};
var __hasProp = {}.hasOwnProperty,
__extends = function(child, parent) {
for (var key in parent) {
if (__hasProp.call(parent, key))
child[key] = parent[key];
}
function ctor() {
this.constructor = child;
}
ctor.prototype = parent.prototype;
child.prototype = new ctor();
child.__super__ = parent.prototype;
return child;
};
function Connector() {
return Connector.__super__.constructor.apply(this, arguments);
}
__extends(Connector, EventEmitter);
区别在于:
super
属性的确切名称util.inherits
使用Object.create
,extends
使用与ES3兼容的版本util.inhirits
使子构造函数的constructor
属性不可枚举extend
份"静态"子构造函数的父构造函数的属性extends
,constructor
关键字会自动calls the super constructor