我想像这样初始化我的 javascript 类:
Example.init({"settings": {"baseUrl":"http://example.com"}, "user": {"id":123, "name":"john doe"} );
然后我希望能够像这样使用它:
Example.settings.baseUrl
Example.user.id;
Example.user.name;
我目前正在使用这样的模块模式:
Example = (function(){
var _init = function(data) {
};
return {
init: function($data) {
_init($data);
}
};
})();
示例.module2 = (函数(){
var _init = function(data) {
if(Example.user.id > 0) { // referencing data set in the Example.init
}
};
return {
init: function($data) {
_init($data);
}
};
})();
我不确定如何公开这些属性,寻求解释和指导。
(也请评论最佳实践,我应该使用 $ 作为参数吗?如果是的话,何时?)
注意:这是我正在尝试做的事情的基本轮廓。
我要做的第一件事是在我的所有页面中调用 Example.init 函数:
Example.init({"settings": {"baseUrl":"http://example.com "}, "user": {"id":123, "name":"john doe"} );
我希望我的其他模块能够引用我在 .init() 方法中设置的数据,请参阅上面添加的 Example.module2。
这是否存在时间问题?
最佳答案
Example = (function(){
var _init = function(data){
// manually
//this.settings = data.settings || NULL;
//this.user = data.user || NULL ;
for (prop in data){
this[prop] = data[prop];
}
}
return {
init: function(data) {
_init.call(this, data);
}
};
})();
Example.init(
{"settings": {"baseUrl":"http://example.com"}, "user": {"id":123, "name":"john doe"}});
console.log(Example.settings.baseUrl);
console.log(Example.user.id);
console.log(Example.user.name);
As for your other question "using $ in variable names " - It is a comment naming convention when the variable contains a Jquery object -
关于javascript - 帮助设计一个公开我初始化的属性的 JavaScript 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27031695/