2011-03-14 7 views
19

DocumentCloud에서 Underscore.js 라이브러리에 대한 설명서를 읽습니다. 대부분의 함수는 설명되지 않는 옵션 인 context 인수를 사용합니다. Ruby에 익숙한 분은 Ruby binding과 비슷하다는 것입니다. 그리고 그 의미는 무엇입니까? this 의미와 관련이 있습니다. 내 JavaScript 사용 범위는 몇 가지 jQuery 호출과 일부 상용구 아약스되었습니다.JavaScript의 Underscore.js 라이브러리에서 '컨텍스트'는 무엇을 의미하며 어떻게 사용합니까?

내 질문 : context의 의미는 무엇이며 어떻게 사용해야합니까? 좋은 대답에는 JavaScript가 작동하는 방식에 대한 정보가 포함되어 있어야합니다.

답변

13

자바 스크립트 함수는 함수가 호출 된 컨텍스트를 나타내는 숨겨진 this 매개 변수를 사용합니다.

일반적으로 this은 전역 개체 (일반적으로 window)입니다. 그러나 객체에서 함수가 호출되면 this이 호출 된 객체가됩니다.

콜백 함수를 사용하는 Underscore.js 메서드는 선택적 context 매개 변수를 사용합니다. 이 매개 변수를 지정하면 해당 context과 함께 콜백이 호출됩니다. 즉, 콜백 내의 this이 컨텍스트와 동일 함을 의미합니다.

+3

그 질문의 첫 번째 부분에 대한 답변입니다. 자,이 능력을 사용해야 할 때, 그리고 내가 '이'를 무엇에 설정해야합니까? 또는, 다른 방법으로 표현하면, 다른 사람의 코드에서 나타나지 않는 한, 그렇게 거의 사용하지 않는 무언가를 무시해야합니다. –

+0

@ 존 : 문맥에서 호출해야하는 자신의 객체의 멤버 함수를 전달하는 경우에 유용합니다. – SLaks

+0

@SLaks : 사용되는 '컨텍스트'의 구체적인 예를 제공 할 수 있습니까? – jkndrkn