Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- html 주석
- 자바스크립트 연산자
- 자바스크립트 promise
- css3
- javascript
- CSS
- front-end
- 자바스크립트 scope
- 프론트엔드
- 자바스크립트 반복문
- css position
- 자바스크립트 상속
- 자바스크립트 스코프
- 자바스크립트 클래스
- 자바스크립트 클로저
- 웹 개발 트렌드
- javascript closure
- 자바스크립트
- 자바스크립트 async await
- javascript opreator
- html 코드
- css 포지션
- css display
- 오블완
- HTML
- 자바스크립트 실행 컨텍스트
- 자바스크립트 생성자 함수
- 티스토리챌린지
- 자바스크립트 프로미스
- javascript opreators
Archives
- Today
- Total
Multi Developer SuHo
자바스크립트 class, 메서드 축약형, ES6 화살표 함수, this bind 🔎 본문
자바스크립트 기록
자바스크립트 class, 메서드 축약형, ES6 화살표 함수, this bind 🔎
Dreaming Developer Student 2025. 1. 15. 10:18SMALL
안녕하세요!! 오늘은 자바스크립트에서 class(클래스)와 , this bind, ES6 부터 사용되는 화살표 함수와 , 메서드 축약형을 간단하게 알아보는 시간을 가져보겠습니다.
서론
이번에는 자바스크립트에 클래스가 무엇인지, 그리고 클래스의 상속, ES6 이후 사용된 화살표 함수( =>) 사용 코드와 this bind에 대해 간단하게 예시 코드를 보면서 알아보겠습니다.
본론
🗒1. 클래스(class)
1-1. class(클래스란)?
1-2. class(클래스)의 목적?
1-3. class(클래스)의 상속?
1-4. class 상속 예시 코드
class Child extends Mother {
constructor(name, age, city) {
super(city); // 부모의 생성자 호출
this.name = name;
this.age = age;
// 자식 클래스에서 부모와 같은키는 사용하지말자
}
}
const child = new Child("이수호", 25); // 콘솔에 출력하면 city 값이 없다
🗒2. 메서드 축약형
2-1. 메서드 축약형이란?
2-2 메서드 축약형 예시 코드
getInfo(){
console.log("부모 클래스의 메서드");
}
🗒3. 화살표 함수
3-1. 화살표 함수란?
3-2. 화살표 함수 예시코드
const bar = (arg) => {
console.log(arg);
}
🗒4. this binding
4-1. this binding이란?
4-2. this binding 예시 코드
this 바인딩 예시 코드 첫번째
// 클래스 Foo를 생성하고
// constructor 생성자 함수를 만들고 매개변수에 name을 받는다.
// this.name = name : name 속성을 초기화
// getState() 라는 축약형 메서드를 만들고 그안에 콘솔에 this를 출력한다
// const obj 라는 변수에 new 키워드를 사용하여 새로운 인스턴스인 Foo를 생성하는데 name 속성을 "soon"으로 초기화한다.
// obj.getState() 메서드의 접근하는데 여기서 다른 객체를 참조하기 위해 this binding이 일어난다.
// 이렇게 this binding이 일어나면 this는 더 이상 obj 의 주소를 가리키지 않고 ({name : "soon"})을 가리킨다.
class Foo {
constructor(name) {
this.name = name;
}
getState () {
console.log(this); // name: "soon2"를 출력한다.
}
}
const obj = new Foo("soon");
obj.getState = obj.getState.bind({name : "soon2"});
this 바인딩 예시 코드 첫번째
/ inner 함수를 생성
// inner 함수 내부에 outer() 함수를 선언하고
// 콘솔에 this를 출력하는데 밑에 outer.call({name: "soon3"})에서 this 바인딩이 일어나서 this는 ({name: "soon3"}) 를 가리킨다.
// 다시 콘솔에 this를 출력할 때 this 바인딩이 일어난 객체의 주소를 참조한다.
// obj.getState 메서드의 this를 호출하는데 obj의 메서드의 this는 obj 객체에 대한 정의한 것이 없어서 this가 출력되지 않는다.
// console.log(this); // 전역 스코프에서 호출이 되어서 this는 window 객체를 가리킨다.
function inner() {
function outer() {
console.log(this);
obj.getState(this);
}
console.log(this); // window 객체 출력
outer.call({name : "soon3"})
}
inner();
결론
결론적으로 class를 사용하면 자바스크립트 코드를 더욱 구조적이고 객체 지향적으로 작성할 수 있습니다. 메서드 축약형을 통해 메서드를 축약하여 만들수 있고, 또한 화살표 함수를 사용하여 기존의 function 키워드를 사용하는 함수보다 더욱 간결하게 함수를 정의할 수 있도록 해줍니다. 마지막으로 this 바인딩을 통해 this가 참조하는 것은 함수가 호출되는 방식에 따라 결정할 수 있습니다.
LIST
'자바스크립트 기록' 카테고리의 다른 글
[자바스크립트 문법] DOM의 사용목적과 DOM의 문법 (1) | 2025.01.21 |
---|---|
[자바스크립트 정보] DOM(Document Object Model)과 DOM의 구조 🌳 (0) | 2025.01.18 |
[자바스크립트 함수 ] 재귀 함수, 생성자 함수 , this 키워드 (0) | 2025.01.14 |
[ 자바스크립트 유용한 정보] TDZ(Temporal Dead Zone)란? (0) | 2025.01.13 |
[자바스크립트] 실행 컨텍스트 (Excution Context) 🗒 (0) | 2025.01.13 |