본문 바로가기

JavaScript

this

- this 
대부분 객체로 사용됨
//몇가지 예외 존재

문장의 주체에 따라서 나(this) 변경됨
ex) 아버지 : 나는 허리가 아프다 (나 === 아버지)
누구의 것인지 주체 파악하기
주체 , 문장 따로 생각

4가지 사용 방법이있음. 
//this 사용함수 어떤 방식으로 실행 하느냐 에 따라서 값이 바뀜

 



1. 일반함수 실행방식 - Regular function call
1 - 1 (in non-strict mode) 일반모드
this === 글로벌 객체

1 - 2 (in strict mode) 엄격한 모드
구체적으로 코드 작성 해야함 
this === undefined
// strict mode일때 this값 확실히 적용 해줘야 함


strict mode 적용방법
함수 본문 처음에 "use strict"; 삽입 



2. 점 방식 - Dot Notation
객체.요소 
. 앞에있는 객체가 주체(this)가 됨



3.   explicit binding
함수에 있는 메소드 call, bind , apply 사용해서 함수 실행

함수.call(객체)
함수.apply(객체)
=> 함수의 this가 객체로 설정되고 호출

>call
함수.call(this설정 객체 , 함수 인자);
//함수의 인자 제한 수 없음

>apply
함수.apply(this설정 객체 , [함수 인자]);
// apply 인자는 2개 
// 2번째 인자는 배열로

>bind
var a = 함수.bind(객체);
// a 변수에 함수의 this가 객체로 바뀐값이 저장 됨
a();
//실행하려면 호출 해야함

 

//함수의 인자 제한 수 없음 

호출시 인자값을 주면, 호출시에만 인자가 들어감

영구적으로 저장되진 않음

 



4. 'new' keyword
new  사용하여 함수 호출

빈 객체를 만든 후, this에 객체값이 들어간 식이 실행되고

빈 객체에 값이 담김

 

// this = {}; 
//새로 만들어진 객체를 인스턴스(instances) 라고 함

호출시 this를 return
//별도로 return 설정 안해도 적용됨

new사용 함수는 일반적으로 앞글자 대문자 사용
ex) function Person(){}

 

 

 

'JavaScript' 카테고리의 다른 글

HTTP, JSON ,AJAX  (0) 2019.10.04
Prototype, instance , __proto__, Prototype Chain  (0) 2019.09.23
문자열,숫자열 변환하기  (0) 2019.09.14
이벤트핸들러 1회 적용 후 제거  (0) 2019.09.11
Closure ,Recursion ,Call Stack ,  (0) 2019.09.06