2014-08-30 101 views
0
var post = _.extend(_.pick(postAttributes, 'url', 'title', 'message'), { 
    userId: user._id, 
    author: user.username, 
    submitted: new Date().getTime() 
}); 

我下面的书籍“发现流星”,他们并不真正解释这个代码块。这究竟意味着什么?这段代码在Meteor中意味着什么?

+2

阅读[Underscore文档](http://underscorejs.org/) – elclanrs 2014-08-30 08:53:12

回答

0

它通过抽象url, title, message属性从postAttributes返回一个对象,并扩展userId, author, submitted属性。 _Underscorejs库的参考。

1

_.pick创建一个新的对象,并采用一组属性名称从旧对象复制。在这种情况下,“旧对象”是postAttributes,要复制的属性为url,title,message

_.extend允许您将属性添加到目标对象。在这种情况下,目标对象是_.pick的结果对象。

它的结果全部成为分配给post的对象。

“复制”在选秀是不是真的复制。基元被复制。对象被引用,而不是被复制。该操作是浅拷贝,对于_.pick_.extend都不是很深。