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

Can additional object properties in coffeescript/javascript be added dynamically to an existing object?

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

例如:

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

现在以后比如我要加大学专业得到这个:

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

还有...这对性能有何影响?

是;

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

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

fred.major = "Computer Science";

这也可以正常工作。

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

您可以将点符号与 属性 名称文字一起使用:

fred.major = "Computer Science";

或带有 属性 名称字符串的括号表示法:

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

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

我建议学习一些基础 JavaScript 教程(如果你想学习 JavaScript)或 CoffeeScript 教程(如果你想学习 CoffeeScript)。