아래 예시 중 JS의 this 키워드는 person 객체를 가리킨다. fullName은 person객체의 메서드 이기 때문이다.
const person = { firstName: "John", lastName: "Doe", id: 5566, fullName: function() { return this.firstName + " " + this.lastName; } };
JS에서 this 키워드는 어떠한 객체를 가리킨다. 호출되는(또는 사용되는) 객체에 따라 다르다. this 키워드는 사용 방법에 따라 다른 객체를 참조한다.
this는 해당 객체를 가리킨다.this는 global 객체를 가리킨다.this는 global 객체를 가리킨다.this는 undefined다.this는 이벤트를 받은 요소를 가리킨다.call(), apply(), bind()와 같은 메서드는 모든 객체에 this를 가리킬 수 있다.
this는 변수가 아니다. 이것은 키워드로this의 값을 변경할 수 없다.
JS THis Tutorial 참조
JS 메서드는 객체에 대해 수행할 수 있는 작업이다. JS 메서드는 함수 정의를 포함하는 속성이다.
| Property | Value |
|---|---|
| firstName | John |
| lastName | Doe |
| age | 50 |
| eyeColor | blue |
| fullName | function() {return this.firstName + " " + this.lastName;} |
메서드는 객체 속성으로 저장된 함수다.
다음과 같은 문법으로 객체 메서드에 접근 가능하다.
objectName.nethodName()
일반적으로 fullName()을 person 객체의 메서드로 설명하고 fullName을 속성으로 설명한다.
fullName 속성은 ()와 함께 호출될 때 (함수로) 실행된다.
아래 예시와 같이 person 객체의 fullName() 메서드에 접근한다.
name = person.fullName();
만약 fullName 속성에 접근원하면, ()를 제외시켜 함수 속성에 접근 할 수 있다.
name = person.fullName;
객체에 메서드를 추가하는 것은 쉽다.
<객체명>.<원하는 메서드명> = <원하는 함수>
person.name = function () {
return this.firstName + " " + this.lastName;
};
아래 예시는 문자를 대문자로 변경하기 위해, 문자열 객체의 toUpperCase()메서드를 사용했다.
let message = "Hello world!";
let x = message.toUpperCase();
// 결과 HELLO WORLD!
