我正在学习javascript,并尝试了一些基本的例子。我发现了一些奇怪的行为,并认为这个论坛会帮助我更好地理解解决方案。
我创建了一个如下对象:
var school={
name:"purnapramati",
location:"girinagar",
'state-name':"karnataka",
proximity:true
}
现在,我动态添加一个属性,如下所示:
school.country="india";
何时打印学校对象,我会看到更新的国家/地区属性,其中印度为值。
现在,我尝试将属性添加到proximity属性:
school.proximity.distance="less than 4kms";
这次distance属性没有添加到proximity属性中,也没有反映在school对象中。
为什么会出现这种情况?请解释一下。我知道这是一个非常基本的问题,但我正在寻找一个令人信服的答案/理由。
答案 0 :(得分:4)
问题是您的proximity
属性不是对象,因此它不具有属性。它是一个带有单个值的布尔值。
我不确定proximity
代表什么true
,但您可以做以下事情:
var school={
name:"purnapramati",
location:"girinagar",
'state-name':"karnataka",
proximity: {
nearby: true
}
}
之后,您可以在尝试使用distance
时为其提供其他属性。
或者使用原始结构,您可以执行以下操作:
school.proximity = { distance: "less than 4kms" };
但是除非你将它存储在另一个属性中,否则你将丢失true
值。
答案 1 :(得分:0)
school.proximity = {distance:"less than 4kms"} ;