我不确定这个标题是否有意义,但基本上我正在尝试为我正在开发的应用程序编写一个非常简单的 Javascript 依赖注入容器。
这是容器:
jedi = new function() {
var library = {};
this.module = function(name, module) {
if (arguments.length == 1) {
return library[name];
}
library[name] = module;
};
};
然后我创建一个 Backbone 模型并将其添加为依赖项,如下所示:
(function () {
var addColourSchemeModel = Backbone.Model.extend({
getColourJSON: function(prop) {
var cols = this.get(prop).split(',');
return {
R: cols[0],
G: cols[1],
B: cols[2]
};
}
});
jedi.module('AddColourSchemeModel', addColourSchemeModel);
})();
当我尝试像这样创建此模块的新实例时会出现问题:
var colourModel = new jedi.module('AddColourSchemeModel')({
// json object containing model values
});
我得到一个错误Object [object global] has no method 'set'
。
奇怪的是,正在调用主干模型初始化方法等,但this
其范围是窗口而不是被初始化的对象,这是发生错误的地方,因为它试图this.set
在某个时候调用,但这实际上是窗口.