【发布时间】:2013-03-30 13:03:48
【问题描述】:
没有代码很难描述这种情况。 我的修改使一些答案变得无关紧要。我在这里过去了原始代码和下面的简化版本:
function Entity(){
var value = {};
return {
'value': value
};
}
var e1 = Entity();
var e2 = Entity();
alert(e1.value === e2.value);
我认为它应该返回 true。但实际上,它返回 false。从函数Entity返回的'value'是否被复制?
更新 我想我现在知道原因了。每次实体函数调用表达式“var value={};”将生成一个新对象。谢谢。
【问题讨论】:
-
{0, 1}不等于{0, 1}... 相同的概念 -
我知道 {0,1} 不等于 {0,1}。我的问题是为什么 e1.value 和 e2.value(在简化版本中)没有引用函数中的同一个实例。
-
另外——你介意去掉上面代码中的原始版本吗?这只是让读者感到困惑。
标签: javascript function