1

假设我有以下 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'  
4

1 回答 1

2

不是作为语言功能,但编写一个简单的extend函数很容易(或使用UnderscorejQuery上的现有版本):

extend = (dst, src) ->
  dst[k] = src[k] for k of src
  dst

person =
  name: 'Alice'

extend person,
  age: 34
  bestFriend: 'Bob'
于 2013-05-09T20:06:47.433 回答