javascript - 帮助设计一个公开我初始化的属性的 JavaScript 类

标签 javascript jquery module-pattern

我想像这样初始化我的 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);
           }
       };
})();

我不确定如何公开这些属性,寻求解释和指导。

(也请评论最佳实践,我应该使用 $ 作为参数吗?如果是的话,何时?)

注意:这是我正在尝试做的事情的基本轮廓。

  1. 我要做的第一件事是在我的所有页面中调用 Example.init 函数:

    Example.init({"settings": {"baseUrl":"http://example.com "}, "user": {"id":123, "name":"john doe"} );

  2. 我希望我的其他模块能够引用我在 .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/

相关文章:

javascript - 选择其他按钮时,JQuery Mobile 单选按钮保持选中状态。使用 .html 函数

javascript - 将模块模式用于大型项目

javascript - 对 jQuery 数据表中的数字进行排序

Javascript面向对象的应用程序结构

javascript - 如何在单页 Web 应用程序中组织您的模型并实现封装

javascript - 基于 routerLinkActive 的 Angular 高亮

javascript - 使用扩展运算符从 ES6 中的对象中删除目标参数

javascript - 获取特定小时的记录和相应数据的平均值

javascript - AJAX 页面构建后触发 $(document).ready

jquery - 使用 Jquery 更改表单输入值