【发布时间】:2015-05-07 06:36:17
【问题描述】:
我在 Flux 的文档中发现了一个有趣的 Object.assign 用例,其架构中的 Dispatcher 示例:
var assign = require('object-assign');
var _callbacks = [];
var Dispatcher = function() {};
Dispatcher.prototype = assign({}, Dispatcher.prototype, {
register: function(callback) {
_callbacks.push(callback);
return _callbacks.length - 1; // index
}
});
来源:http://facebook.github.io/flux/docs/todo-list.html#creating-a-dispatcher
将扩展原型分配给同一个对象的原型的原因是什么?
【问题讨论】:
-
如果你这样做,它不会修改在分配完成之前使用“new Dispatcher()”创建的对象的原型。我猜它遵循“不变性”-idea,还保留了原始原型函数,这里小测试jsfiddle.net/uxfr8bea
标签: javascript flux