오늘 배운 것
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
Generator
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Generator
Async/Await
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/async_function
Promise랑 Generator는 아직 이해가 어려운데 async/await문은 c#에서도 쓰는 문법이라 익숙하다. 앞의 두 문법은 es6에서, async문법은 es7에서 추가됐다고 하니, 쓸때는 async문으로 쓰되, 레거시 코드를 읽기 위해 promise, generator문을 알아둬야 할 것 같다.