无法访问javascript中的其他对象

时间:2017-01-09 19:37:15

标签: javascript object modular

我上传了一个示例代码,其中有两个使用模块化模式定义的对象。

var obj1 = {
    cachdom: function() {
      // querying a dom element
      this.$interactiveReport = $('#BugPreventiveIR_data_panel');

      }
    };

    var obj2 = {
      $IR: obj1.$interactiveReport,
      logging: function() {
        // This returns undefined
        console.log(this.$IR);
      }
    };

    // Invoking the Objects only after document is ready.
    $(document).ready(function() {
      console.clear();
      interactiveReportRegion.init();
      displayOfBugList.logging();
    });

但是,当我在控制台中检查时,obj2.logging为此返回undefined。$ IR。但是,如果我通过控制台访问obj1。$ interactiveReport,我可以查看对象值。 Similairly,如果我再次在控制台中定义第二个对象,它会获得obj2的正确值。$ IR。

我无法访问第二个对象中第一个对象的属性?

我的整个代码都可以在这里找到 https://gist.github.com/alaghu/6225e50b35ecfdaf2ee8f752f596f49b

2 个答案:

答案 0 :(得分:0)

日志记录功能需要知道"这个"意味着因为它不是一个构造的对象..这应该这样做。

displayOfBugList.logging.apply(displayOfBugList);

答案 1 :(得分:0)

定义函数会改变“this”的范围。考虑使用lamda函数来解决这个问题。还有能力绑定“这个”是什么,但我回避那个方法