this binding
- 아래는
this
의 개념을 설명하는 몇가지 예시 입니다.
example 1
console.log(this);
- 위의 예시에서
this
는 global object
를 가리킵니다. 전역 범위에서 실행되었기 때문입니다.
example 2
function sayHello() {
console.log(this);
}
sayHello();
- 위의 예시 또한
this
는 global object
를 가리킵니다. sayHello
함수가 명시적인 바인딩이 없이 호출되었기 때문입니다.
example 3
const person = {
name: "John",
greet: function() {
console.log(`Hello, my name is ${this.name}`);
}
}
person.greet();
- 위의 예시에서
this
는 person
객체를 나타냅니다. greet
함수가 person
객체의 메소드 이기 때문입니다.
example 4
function Person(name, age) {
this.name = name;
this.age = age;
}
const john = new Person("John", 30);
console.log(john.name);
- 위의 예시에서
this
는 new
키워드로 만들어진 새로운 객체를 나타내며 이는 John
과 30
으로 초기화 됩니다.
example 5
const button = document.querySelector("button");
button.addEventListener("click", function() {
console.log(this);
});
- 위의 예시에서
this
는 DOM element 를 나타내며 이 경우는 button
element 를 나타냅니다.