javascript对象组合语法

时间:2012-01-06 05:12:17

标签: javascript object syntax

在下面的代码中,我希望能够像这样调用bindClickEvents():

App.Utils.Modal.bindClickEvents();

但是,我不明白执行此操作所需的语法。

当前代码:

var App = new Object;

App.Modal = {
  bindClickEvents: function() {
    return $('a.alert-modal').click(function(e) {
      return console.log('Alert Callback');
    });
  }
};

$(document).ready(function() {
  return App.Modal.bindClickEvents();
});

3 个答案:

答案 0 :(得分:3)

你可以一次性完成:

var App = {
  Modal : {
    bindClickEvents : function () {/* ... */}
  }
}

或者如果你想将其分解为单独的步骤:

var App = {};
App.Modal = {};
Modal.bindClickEvents = function () {/* ... */};
顺便说一下,关于你原来的问题标题,这不是对象链接。这是对象组成。对象链可以在一个语句中多次调用对象中的方法。

答案 1 :(得分:2)

这是你想要做的吗?

var App = {};

App.Utils = {};

App.Utils.Modal = {
  bindClickEvents: function() {
    return $('a.alert-modal').click(function(e) {
      return console.log('Alert Callback');
    });
  }
};

$(document).ready(function() {
  return App.Utils.Modal.bindClickEvents();
});

答案 2 :(得分:0)

首选对象文字语法为Object构造函数;一些作者甚至将后者称为反模式

以下是设置App.Utils.Modal.bindClickEvents();

的最简单方法
var App = {
      Utils: {
           Modal: {
               bindClickEvents: function() {
                    return $('a.alert-modal').click(function(e) {
                        return console.log('Alert Callback');
                    });
               }
           }
      }
 };

或者你可以一步一步拼凑出来:

var App = {};
App.Utils = {};
App.Utils.Modal = {};
App.Utils.Modal.bindClickEvents = function() {
    return $('a.alert-modal').click(function(e) {
      return console.log('Alert Callback');
    });
};