动态javascript属性更新

时间:2014-04-04 18:11:26

标签: javascript

我正在学习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对象中。

为什么会出现这种情况?请解释一下。我知道这是一个非常基本的问题,但我正在寻找一个令人信服的答案/理由。

2 个答案:

答案 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"} ;