- 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 |