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

나는 "Discover Meteor"라는 책을 팔로우하고 있으며,이 코드 블록을 실제로 설명하지는 않습니다. 그것은 정확히 무엇을 의미합니까?Meteor에서이 코드 블록의 의미는 무엇입니까?

+2

[밑줄 문서] (http://underscorejs.org/)를 읽어보십시오. – elclanrs

답변

0

url, title, message 속성을 postAttributes에서 추상화하여 개체를 반환하고 userId, author, submitted 속성으로 확장합니다. _Underscorejs 라이브러리의 참조입니다.

1

_.pick은 새 개체를 만들고 이전 개체에서 복사 할 속성 이름 집합을 사용합니다. 이 경우 "이전 개체"는 postAttributes이고 복사 할 속성은 url, title, message입니다.

_.extend을 사용하면 대상 개체에 속성을 추가 할 수 있습니다. 이 경우 대상 객체는 _.pick의 결과 객체입니다.

그 결과는 post에 할당 된 개체가됩니다.

"복사"는 실제로 복사되지 않습니다. 프리미티브가 복사됩니다. 오브젝트는 복사되지 않고 참조됩니다. 이 작업은 얕은 복사본이며 _.pick_.extend 모두에 대해서는 깊이가 없습니다.

관련 문제