Java this

객체 지향 언어인 java를 사용하면 어김없이 사용하게 되는 것으로 인스턴스 자신을 가리키는 참조 변수이다. 메서드 내에서 프로퍼티 명과 멤버변수명이 같을 경우 멤버변수를 가리킬때 사용한다.

private String name;

pubic void setName(String name) {
	this.name = name;
}

특히 이러한 형태로 Setter 메서드를 생성할 때 주로 사용하게 되는데 JavaScript에도 this가 있다.

JavaScript this

* 렉시컬 스코프

var x = 1;

var foo : function() {
	var x = 10;
	bar();
}

var bar : function() {
	console.log(x);
}

foo();
bar();
  • 위와같이 두 개의 함수를 선언하고 실행했다. 결과는 둘 다 1이 나올것이다. 이처럼 렉시컬 스코프는 어디서 실행하였는지가 중요한게 아니라 어디서 선언하였는지 중요한 것이다. foo()함수에서 실행했던간에 bar()함수는 전역에서 선언하여 전역 변수를 사용하게 된 것이다.

자바스크립트에서 this는 호출되었을때 동적으로 바인딩 된다.

foo() {
	console.dir(this);
}

foo(); //window

var obj = {foo : foo;} 
obj.foo(); // obj

var instance = new foo(); //instance

이런식으로 말이다. this는 기본적으로 전역변수에 바인딩 된다. 심지어 내부 함수로 설정되었더라도 일반 함수, 메소드, 콜백함수 어디에서 선언되었든 관게없이 this는 전역객체를 바인딩한다.

 

'FRONT > JavaScript' 카테고리의 다른 글

[Front] javascript의 변수와 자료형  (0) 2020.06.14
[Front] JavaScript 기초  (0) 2020.06.14

+ Recent posts