在javascript函数中返回事件侦听器

时间:2015-12-23 20:21:32

标签: javascript

当你最终在javascript函数中做这样的事情时,我想知道发生了什么:

function() {    
 var privateMembers : {
  'methodA' : function() {
  },
  'methodB' : function() {
  }
 };

var publicMembers = {
  'methodC' : function() {
  },
  'methodD' : function() {
  }
 };

publicMembers.listen = {
    "myEvent:Listener" : publicMembers.MethodC;
};

return publicMembers;

}

我明白只返回publicMembers会使方法可用,但是,我也想知道是否也可以使publicMembers.listen可用?

2 个答案:

答案 0 :(得分:0)

是肯定的。这两个代码是等价的

var publicMembers = {
  'methodC' : function() {
  },
  'methodD' : function() {
  }
 };

publicMembers.listen = {
    "myEvent:Listener" : publicMembers.MethodC;
};

var publicMembers = {
  'methodC' : function() {
  },
  'methodD' : function() {
  }
  'publicMembers' : {
    listen : {
      "myEvent:Listener" : publicMembers.MethodC;
    }
  }
 };

答案 1 :(得分:0)

publicMembers.listen只是publicMembers对象的一个​​属性,使用对象文字或点表示法声明属性之间没有区别。因此,当您将listen属性添加到publicMembers对象,并返回整个对象时,您肯定也可以访问publicMembers.listen。测试顺便说一句很容易。