可以将coffeescript / javascript中的其他对象属性动态添加到现有对象吗?
例如:
var fred = { name: "Fred", species: "Sub-Human" };
现在稍后,例如,我想添加大学专业来获得这个:
{ name: "Fred", species: "Sub-Human", major: "Computer Science" }
而且......这会影响性能,还是会影响性能?
答案 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";
这也可行。