帮助设计公开我初始化的属性的javascript类
我想像这样初始化我的javascript类:帮助设计公开我初始化的属性的javascript类,javascript,jquery,module-pattern,Javascript,Jquery,Module Pattern,我想像这样初始化我的javascript类: Example.settings.baseUrl Example.user.id; Example.user.name; Example = (function(){ var _init = function(data) { }; return { init: function($data) { _init($data); }
Example.settings.baseUrl
Example.user.id;
Example.user.name;
Example = (function(){
var _init = function(data) {
};
return {
init: function($data) {
_init($data);
}
};
})();
init({“设置”:{“baseUrl”:“},
“用户”:{“id”:123,“姓名”:“john doe”})
然后我希望能够像这样使用它:
Example.settings.baseUrl
Example.user.id;
Example.user.name;
Example = (function(){
var _init = function(data) {
};
return {
init: function($data) {
_init($data);
}
};
})();
我目前使用的模块模式如下:
Example.settings.baseUrl
Example.user.id;
Example.user.name;
Example = (function(){
var _init = function(data) {
};
return {
init: function($data) {
_init($data);
}
};
})();
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);
至于您的另一个问题“在变量名中使用$”,当变量包含Jquery对象时,这是一种注释命名约定-
谢谢,但是如果你不使用extemd怎么办,这似乎太神奇了,你希望学习。你可以手动复制属性,如或@ArunPJohny谢谢,请参阅我的更新。我的其他模块可以看到这些属性,我需要它。嗨,我想你必须在return语句中公开.settings和.user。谢谢。有有几种不同的方法可以做到这一点。这些方法是在返回的对象上设置的,因此它们是公开的。(在调用_init时强制上下文),如果我有另一个模块,如Example.someThing=(函数(…)();我似乎无法访问其中的Example.user。我如何才能做到b/c这是我所有这些的目标。不清楚您试图做什么。请澄清。或提供另一个代码示例。