Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript函数中返回事件侦听器_Javascript - Fatal编程技术网

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

在javascript函数中返回事件侦听器,javascript,Javascript,我想知道当您在javascript函数中执行类似操作时会发生什么: function() { var privateMembers : { 'methodA' : function() { }, 'methodB' : function() { } }; var publicMembers = { 'methodC' : function() { }, 'methodD' : function() { } }; publicMembers.lis

我想知道当您在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可用?

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

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

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


listen只是publicMembers对象的一个属性,使用对象文本或点表示法声明属性没有区别。因此,当您向publicMembers对象添加listen属性并返回整个对象时,您当然也可以访问publicMembers.listen。顺便说一句,测试非常容易。

是的,返回整个
publicMembers
对象。你试过了吗?
var publicMembers = {
  'methodC' : function() {
  },
  'methodD' : function() {
  }
  'publicMembers' : {
    listen : {
      "myEvent:Listener" : publicMembers.MethodC;
    }
  }
 };