在我的模块模式中,由于某些原因,选项是“未定义的”。有没有人看到他们为什么没有正确传入?为什么不重写选项?
Framework.MyModule = (function(options) {
var defaults = {
someOption : 1,
stuff : 2
};
if (!options) {
var options = defaults;
} else {
for (var index in defaults) {
if (typeof options[index] == 'undefined')
options[index] = defaults[index];
}
}
var module = {};
// Initialize
_something();
// Private Methods
function _something() {}
// Public Methods
module.click = function() {};
return module;
})();
... docready function ...
var options = {
someOption : 9,
stuff : 10
};
Framework.MyModule(options);
... end doc ready ...
请参阅小提琴:http://jsfiddle.net/kWHEZ/1/
有你自动执行之后的声明MyModule的方法的原因是什么? – simshaun 2010-12-20 22:47:43
我明白你已经提供了一些真实的代码(或其中的一些表象)。如果你能够更进一步并提供一个[JSFiddle](http://jsfiddle.net)和一个重现问题的简化示例,那将会很有帮助。 – Phrogz 2010-12-20 22:49:31
如果我不这样做,我不能使用公共方法“Framework.MyModule.click()” – tester 2010-12-20 22:50:32