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