在下面的代码片段中,same怎么可能是false?
var child1:ApplicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
var child2:ApplicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
var same:Boolean = (child1.parentDomain === child2.parentDomain);
trace(same);发布于 2010-12-18 06:52:54
您正在使用严格相等运算符,并且正在创建两个新对象,即使它们共享一些属性(作为参数传递给构造函数的currentDomain ),如果您首先创建它们,则它们不是同一个对象
var temp:ApplicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);然后将其赋值为child1和child2,然后将它们的parentDomains相互比较,我敢打赌您会得到不同的结果。我会在那里抛出一个断点,并查看孩子1/孩子2以及孩子1.parentDomain和孩子2.parentDomain(在调试面板中)的内存地址,以便确定这里到底发生了什么,不幸的是,ApplicationDomain对象是Flash封闭源代码部分的一部分。
https://stackoverflow.com/questions/4475381
复制相似问题