http://www.websamo.com/bbs/board.php?bo_table=jquery_api&wr_id=13

http://uxicode.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%EC%9D%98-this%EB%9E%80



Context, Call and Apply : 문맥, 호출과 적용

Context 을 직역하니 뭔지 잘 모르겠습니다. 여기에서는 "this" 키워드를 설명하기 위해 문맥(context) 이라는 단어를 사용했는데요. "this" 키워드는 절대적인 것이 아닌 상대적인 객체를 표시합니다. 즉, 프로그램의 내의 흐름(문맥과 일맥상통)에 따라 "this" 가 지칭하는 내용이 달라진다는 얘기 입니다. 아래 예제를 보세요.

$(document).ready(function() {
  // this refers to window.document
});
$("a").click(function() {
  // this refers to an anchor DOM element
});

보시면 위쪽 함수에서의 "this"는 window.document 가 됩니다. 아래 "this"는 문서상의 A 태그들이 되죠. Context 란 의미는 이런 의미에서 사용한 것 같습니다. "this" 란 키워드는 참 재미있는 녀석인데요. 이 키워드가 아마 프로그램에서 배우면서 배열 다음에 만나는 둘째판왕(王) 정도 될 겁니다.





사용법

this는 키워드 이며 변수나 속성 이름이 아님을 유의하라
자바스크립트 문법은 this에 값을 할당하는 것을 허용하지 않는다.
변수와 달리 this키워드에는 범위가 없고 중첩 함수는 호출자의 this값을 상속하지 않는다.

중요key-point

중첩함수가 메서드 형태로 호출시( myFunc.method(); )
     ---> 중첩 함수에서의 this 값은 그 함수가 속한 객체다.

중첩함수가 함수 형태로 호출시( func(); )                
     ----> 중첩 함수의 this값은 global객체(일반모드) 또는 undefined(엄격모드)중 하나다.


흔히 보이는 실수는 함수 형태로 호출된 중첩함수가 바깥쪽함수의 호출 컨텍스트를 획득하기 위해
this값을 사용할 수 있다고 가정하는 것이다.
만약 바깥쪽 함수의 this값에 접근하고 싶다면 안쪽 함수의 유효범위에 바깥쪽 함수의 this값을 별도의 변수로 저장해야 한다.
이러한 용도로 보통 self변수를 사용한다.


'jquery, ajax' 카테고리의 다른 글

동적 html 제어  (0) 2016.02.22
attr()  (0) 2016.02.02
jquery change()  (0) 2015.12.28
다중 셀렉터 다중 css처리  (0) 2015.11.16
ajax를 쓰는 목적  (0) 2015.09.23
Posted by 이상욱1
,