我有以下课程
盒子类
var Box = new Class({
Implements: [Options],
options: {
name: 'new',
weight: 0
},
initialize: function (options) {
this.setOptions(options);
},
getParent: function () {
return this.options.parent;
}
});
收藏类
var Collection = new Class({
Implements: [Options],
options: {
boxes: []
},
boxes: [],
initialize: function (options) {
var self = this;
this.setOptions(options);
Array.each(this.options.boxes, function (box) {
self.boxes.push(new Box({
parent: self,
name: box.name,
weight: box.weight
}));
});
}
});
创建时,我将Collection
类(作为parent
)传递给 Box 类。
var newCollection = new Collection({
boxes: [
{
name: 'A',
weight: 9
},
{
name: 'B',
weight: 3
},
{
name: 'C',
weight: 2
},
{
name: 'D',
weight: 5
},
{
name: 'E',
weight: 7
}
]
});
我希望类中的是parent
对Box
类的引用Collection
而不是副本,尽管似乎newCollection
每次Box
创建类时我都会获得类的副本(每个框的长度都不同)
Array.each(newCollection.boxes, function (box) {
console.log('*',box.getParent());
});
我是 mootools 的新手,即使我已经阅读了文档,这也是我最终编写代码的方式。mootools 中是否有更可接受的编码模式,我可以通过它来引用parent
?
这是小提琴。