当你最终在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可用?
答案 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。测试顺便说一句很容易。