var post = _.extend(_.pick(postAttributes, 'url', 'title', 'message'), {
userId: user._id,
author: user.username,
submitted: new Date().getTime()
});
我下面的书籍“发现流星”,他们并不真正解释这个代码块。这究竟意味着什么?这段代码在Meteor中意味着什么?
var post = _.extend(_.pick(postAttributes, 'url', 'title', 'message'), {
userId: user._id,
author: user.username,
submitted: new Date().getTime()
});
我下面的书籍“发现流星”,他们并不真正解释这个代码块。这究竟意味着什么?这段代码在Meteor中意味着什么?
它通过抽象url, title, message
属性从postAttributes
返回一个对象,并扩展userId, author, submitted
属性。 _
是Underscorejs库的参考。
_.pick
创建一个新的对象,并采用一组属性名称从旧对象复制。在这种情况下,“旧对象”是postAttributes
,要复制的属性为url
,title
,message
。
_.extend
允许您将属性添加到目标对象。在这种情况下,目标对象是_.pick
的结果对象。
它的结果全部成为分配给post
的对象。
“复制”在选秀是不是真的复制。基元被复制。对象被引用,而不是被复制。该操作是浅拷贝,对于_.pick
和_.extend
都不是很深。
阅读[Underscore文档](http://underscorejs.org/) – elclanrs 2014-08-30 08:53:12