【发布时间】:2014-03-11 13:12:18
【问题描述】:
我读过MDN document on Object.create。 它只指出了第一个参数是原型时的场景。但是,我在 Node.js 中看到过一些这样的代码:
var events = require('events');
var emitter = new events.EventEmitter();
var a = Object.create(emitter);
那么当Object.create() 的第一个参数是一个对象时,它会做什么呢?
【问题讨论】:
-
所有原型都是对象。没有区别 - 它只是做同样的事情。
-
那么a和emitter是什么关系呢?它们彼此不同吗?我试图让发射器监听名为 'hello' 的事件并让 a 发出 'hello' 事件,发射器可以捕获它。
-
@LASkuma 与 any 原型的关系相同。那么“问题”就是“
new events.EventEmitter()返回什么?”这与这里要求的不同。 -
@user2864740 这有点令人困惑。你的意思是“a”属于 EventEmitter 的子类,因为发射器是 EventEmitter 类的一个实例?
-
不,它有一个指向
emitter的指针。它是一个新的、不同的对象,并且可以有自己的属性(隐藏继承的属性)。
标签: javascript node.js object-create