假设我有以下CoffeeScript代码:
person =
name: 'Alice'
现在,我想用另外两个属性来扩充这个对象。常见的方法是写:
person.age = 34
person.bestFriend = 'Bob'
但是,我不想重复person
。不过我喜欢写的是:
person =
age: 34
bestFriend: 'Bob'
(不幸的是)这会创建一个全新的对象并将其分配给person变量,这意味着Alice失去了她的名字。除了逐行编写属性赋值之外,还有更好的方法来增加CoffeeScript中的对象吗?类似的东西:
person.augment
age: 34
bestFriend: 'Bob'
答案 0 :(得分:2)
不是语言功能,但编写简单的extend
功能非常简单(或使用现有版本on Underscore或jQuery):
extend = (dst, src) ->
dst[k] = src[k] for k of src
dst
person =
name: 'Alice'
extend person,
age: 34
bestFriend: 'Bob'