본문 바로가기
Web/Javascript

[Javascript 기본 개념] Javascript 문법-this개념

by 나비와꽃기린 2016. 6. 23.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1.1  this

-this는 함수 내에서 함수 호출 맥락(context)를 의미한다.

-맥락이라는 것은 상황에 따라서 달라진다는 의미인데 즉 함수를 어떻게 호출하느냐에 따라서

this가 가리키는 대상이 달라진다는 뜻이다.

Ex)

var funcThis = null;

function Func(){

funcThis = this;

}

var o1 = Func();

if(funcThis === window){

document.write('window <br />');

}

var o2 = new Func();

if(funcThis === o2){

document.write('o2 <br />');

}

à 생성자는 빈 객체를 만든다. 그리고 이 객체내에서 this는 만들어진 객체를 가르킨다.

생성자가 실행되기 전까지는 객체는 변수에도 할당될 수 없기 때문에 this가 아니면 객체에 대한 어떠한 작업을 할 수 없기 때문!

 

Ex) 함수의 메소드인 apply, call을 이용하면 this의 값을 제어할 수 있다

var o = {}

var p = {}

function func(){

switch(this){

case o:

document.write('o<br />');

break;

case p:

document.write('p<br />');

break;

case window:

document.write('window<br />');

break;

}

}

func();

func.apply(o);

func.apply(p);