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 |