[TIL] 2020. 05. 27. This

달밤·2020년 5월 27일
0

TIL

목록 보기
24/110
post-thumbnail

오늘 배운 것

This

This의 다섯 가지 패턴

1. Global : window

var name = 'Global variable';	//전역변수 'name'
console.log(this.name);			//"Global Variable"
//(글로벌에서) this === window

2. Function 호출 : window

function global(){				//함수 'global'
  console.log(this === window);
}

global();						//true
//(함수 호출 시) this === window (설령 함수가 여러번 중첩되있다하더라도 같음)				

3. Method 호출 : 부모 object

Method는 객체에 담긴 함수(Function)

var obj = {						//객체 'obj'
  foo : function(){				//메소드 'foo'
    console.log(this === obj)}
};

obj.foo();						//true
//(메소드 호출 시) this === window (object가 여러번 중첩될시 바로 직계부모만)

4. Construction mode (new 연산자로 생성된 function 영역의 this) : 새로 생성된 객체

function Test() {			//생성자 함수 'Test'
  	this.name = 10;			//프로퍼티(속성) 정의
}

let Test1 = new Test();		//인스턴스 생성
Test1.name;					//10
//this === Test1

5. .call or .apply 호출 : caal, apply의 첫번째 인자로 명시 된 객체

function identify() {
    this.name.toUpperCase();
}

let me = {name: "kyle"};
let you = {name :"reader"};

identify.call(me); //'KYLE' 	//this === me
identify.apply(you)	//'READER'	//this === you

*call()apply()의 차이 -> parameter 값을 배열로 받느냐 아니냐 차이

function add (a,b){
    return a+b
}

add.apply(null, [2,8]) 	//10
add.call(null, 2, 8)	//10

오늘 하루

  1. 다시 날아오를 추진력을 얻어야 할 시기.
profile
다 늦은 밤, 달밤의 개발일기

0개의 댓글