아래 예시 중 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!