我想像这样初始化我的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);
}
};
})();
Example.module2 =(function(){
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。
这是否有时间问题?
答案 0 :(得分:1)
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);
关于你的其他问题"在变量名中使用$" - 当变量包含Jquery对象时,它是注释命名约定 -