일기

11/07

Realuda72 2024. 11. 7. 20:44

오늘 배운 것

 

1. 자바스크립트의 콜백함수

-콜백함수란 다른 코드의 인자로 넘겨주는 함수

-콜백함수는 메서드가 아니라 함수이기 때문에 this를 바인딩해서 써야한다

-콜백함수에서 this를 전달하기 위해 bind 메서드를 활용한다.

var obj1 = {
    name: 'obj1',
    func: function () {
        console.log(this.name);
    }
};
//함수 자체를 obj1에 바인딩
//obj1.func를 실행할 때 무조건 this는 obj1로 고정해줘!
setTimeout(obj1.func.bind(obj1), 1000);

var obj2 = { name: 'obj2' };
//함수 자체를 obj2에 바인딩
//obj1.func를 실행할 때 무조건 this는 obj2로 고정해줘!
setTimeout(obj1.func.bind(obj2), 1500);

-콜백 지옥 -> 콜백함수 안에 콜백함수... 무한 콜백 지옥으로 가독성도 떨어지고 수정도 어려운 상황

-비동기 프로그래밍

 

Promise

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Promise

 

Promise - JavaScript | MDN

Promise 객체는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타냅니다.

developer.mozilla.org

 

Generator

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Generator

 

Generator - JavaScript | MDN

Generator 객체는 generator function 으로부터 반환되며, 반복 가능한 프로토콜과 반복자 프로토콜을 모두 준수합니다.

developer.mozilla.org

 

 

Async/Await

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/async_function

 

async function - JavaScript | MDN

async function 선언은 AsyncFunction객체를 반환하는 하나의 비동기 함수를 정의합니다. 비동기 함수는 이벤트 루프를 통해 비동기적으로 작동하는 함수로, 암시적으로 Promise를 사용하여 결과를 반환

developer.mozilla.org

 

Promise랑 Generator는 아직 이해가 어려운데 async/await문은 c#에서도 쓰는 문법이라 익숙하다. 앞의 두 문법은 es6에서, async문법은 es7에서 추가됐다고 하니, 쓸때는 async문으로 쓰되, 레거시 코드를 읽기 위해 promise, generator문을 알아둬야 할 것 같다.

'일기' 카테고리의 다른 글

11/12  (0) 2024.11.12
11/11  (0) 2024.11.11
11/06  (0) 2024.11.06
11/05  (0) 2024.11.05
11/04  (0) 2024.11.04