可以将coffeescript / javascript中的其他对象属性动态添加到现有对象吗?

时间:2015-02-22 15:08:49

标签: javascript node.js coffeescript

可以将coffeescript / javascript中的其他对象属性动态添加到现有对象吗?

例如:

var fred = { name: "Fred", species: "Sub-Human" };

现在稍后,例如,我想添加大学专业来获得这个:

{ name: "Fred", species: "Sub-Human", major: "Computer Science" }

而且......这会影响性能,还是会影响性能?

2 个答案:

答案 0 :(得分:4)

当然,JavaScript对象是完全动态的。

您可以使用带有属性名称文字的点表示法:

fred.major = "Computer Science";
带有属性名称字符串的

或括号表示法:

fred["major"] = "Computer Science";

文字可以通过JavaScript引擎进行更多优化,字符串可以是任何表达式的结果(因此,fred["m" + "ajo" + "r"] = ...可以工作)并且可以包含您不能的字符(如空格 - 是的,真的 - )在属性名称文字中使用。

我建议您完成一些基本的JavaScript教程(如果您想学习JavaScript)或CoffeeScript教程(如果您想学习CoffeeScript)。

答案 1 :(得分:2)

是;

fred["major"] = "Computer Science";

可以使用方括号和属性名称访问对象上的所有属性。此方法还允许您设置新属性。

fred.major = "Computer Science";

这也可行。