일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- git
- DP
- Database
- Redux
- Javascript
- 다이나믹 프로그래밍
- 백준
- Algorithm
- CS
- db
- DFS
- 프로그래머스
- 동적 계획법
- 리트코드
- vscode
- 안드로이드
- 자바
- LeetCode
- BFS
- react
- 그레이들
- 알고리즘
- java
- Python
- network
- VIM
- TypeScript
- Data Structure
- frontend
- Graph
Archives
- Today
- Total
늘 겸손하게
JavaScript object에 메소드 추가, this 키워드 본문
안녕하세요 besforyou입니다.
이번 글은 JavaScript object에 메소드 추가하는 방법입니다.
자바에 class가 있듯이 자바스크립트에는 object가 있습니다. 완전히 똑같진 않지만 쓰임이 비슷합니다.
user라는 오브젝트를 생성해보겠습니다.
1
2
3
4
|
let user = {
name: "Mike",
age: 23
};
|
cs |
이 user 오브젝트에 method를 추가하는 법은 간단합니다.
1
2
3
4
5
6
7
8
9
10
|
let user = {
name: "Mike",
age: 23
};
user.sayHi = function() {
alert("Hello!");
};
user.sayHi(); // Hello!
|
cs |
메소드를 생성하면서 새로 만든 오브젝트의 property sayHi 에 할당해주면 됩니다.
이제 오브젝트 user는 sayHi라는 새로운 property를 가지게 되었고 sayHi()를 호출하면 alert("Hello!"); 가 실행됩니다.
이렇게 오브젝트의 property(속성)인 함수를 method라고 부릅니다.
메소드 내부에서 오브젝트 속성 접근 ( this 키워드 )
메소드를 실행할때 오브젝트의 다른 속성 데이터에 접근하고 싶을때가 있을겁니다.
예로 위 예시의 메소드인 sayHi 메소드는 user 오브젝트의 속성인 name에 담긴 데이터를 접근하여 출력하고 싶은 경우가 있을겁니다.
그럴때는 this 키워드를 사용합니다.
1
2
3
4
5
6
7
8
9
10
11
|
let user = {
name: "Mike",
age: 23,
sayHi() {
alert(this.name);
}
};
user.sayHi(); // Mike
|
cs |
위 예시처럼 this 키워드를 통해 자신이 속한 오브젝트의 다른 속성들에 접근할 수 있습니다.
this 키워드는 bound 상태가 아닙니다.
this가 가리키는것이 어떤것인지는 런타임에 판단되므로 특정 오브젝트에 묶여있지 않습니다.
그러므로 다음과 같은 코드도 오류없이 실행됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
let user = { name: "John" };
let admin = { name: "Admin" };
function sayHi() {
alert( this.name );
}
user.f = sayHi;
admin.f = sayHi;
user.f(); // John (this == user)
admin.f(); // Admin (this == admin)
|
cs |
'Programming > JavaScript' 카테고리의 다른 글
JavaScript - let, var, const 차이 (0) | 2022.04.06 |
---|---|
JavaScript - 배열 선언 + 초기화 (0) | 2022.03.24 |
JavaScript Array sort - 자바스크립트 숫자 배열 정렬이 제대로 안될 때 (0) | 2022.01.07 |
JavaScript 기초 요약 #2 (0) | 2021.09.16 |
JavaScript 기초 요약 #1 (0) | 2021.09.16 |