1

我正在尝试一种 JavaScript 设计模式(不确定它是否有名称?),其中我有原型函数作为项目的集合。要创建一个新项目,我首先实例化一个集合,获取 newItemBuilder 函数,设置我希望它具有的任何名称或其他属性,然后创建实际的项目。

但是,在每个项目中,我想检索它所属的collectionId,而不需要太多的忙乱。这在 JavaScript/Node.js 中可行吗?我可以获得某种调用者上下文信息吗?

我在这里https://gist.github.com/Niklas9/6350880创建了一个完整源代码的要点,或者查看下面的分数。

来自 Collection.js 的分数:

var Collection = function() {
    this.id = 23423;
    this.name = 'collection 1';
}

来自 Item.js 的分数:

var Item = function() {
    this.name = null;
    this.collectionId = null;
}

来自 ItemBuilder.js 的分数:

var ItemBuilder = function() {
    this.name = null;
}

ItemBuilder.prototype.withName = function(name) {
    this.name = name;
    return this;
}

ItemBuilder.prototype.create = function() {
    var item = Item;
    item.name = this.name;
    item.collectionId = null; // <-- this is where I want to get collectionId
    return item;
}

来自来电者的分数:

var itemBuilder = collection.newItemBuilder();
var item = itemBuilder.withName('item 1').create();
4

0 回答 0