자바스크립트 문법/중고급(비동기_프라미스_this)5 제너레이터 요약 제너레이터는 제너레이터 함수 function* f(…) {…}을 사용해 만듭니다. yield 연산자는 제너레이터 안에 있어야 합니다. next/yield 호출을 사용하면 외부 코드와 제너레이터 간에 결과를 교환할 수 있습니다. 모던 자바스크립트에서는 제너레이터를 잘 사용하지 않습니다. 그러나 제너레이터를 사용하면 실행 중에도 제너레이터 호출 코드와 데이터를 교환할 수 있기 때문에 유용한 경우가 종종 있습니다. 그리고 제너레이터를 사용하면 이터러블 객체를 쉽게 만들 수 있다는 장점도 있습니다. 다음 챕터에선 for await ... of 루프 안 비동기 데이터 스트림을 다룰 때 사용되는 비동기 제너레이터(asnyc generator)에 대해 알아볼 예정입니다. 비동기 제너레이터는 페이지네이션을 사용해.. 자바스크립트 문법/중고급(비동기_프라미스_this) 2022. 10. 31. 비동기 promise, async/await (생활코딩) 생활코딩이 짱! 콜백 Hell --> Promise --> async / await Promise 사용하기 // 남이 만든 promise 를 사용. (소비자) fetched = fetch('https://jsonplaceholder.typicode.com/posts') .then(response=>response.json()) // response.json()은 promise리턴->.then .catch(reason=>console.log(reaseon)) // rejected .then(data=>console.log('프라미스 체이닝',data)) // 프라미스 chaining 방식 생산자. 남이 Promise 를 사용하도록 (기초) // 매개변수에 성공,실패를 알려주는 콜백함수 필요. // var .. 자바스크립트 문법/중고급(비동기_프라미스_this) 2022. 10. 28. this, 콜백 ::: 코어 자바 스크립트 1 2 3 코어 p.73 this var obj1 = { // 1) 객체 생성: obj1 안에 outer 익명 함수 프로퍼티 outer: function() { // 3) obj1.outer() 함수의 실행 컨텍스트 생성->호이스팅. obj1로 this 바인딩 console.log(this); // 4) this 는 obj1 var innerFunc = function() { // 5) innerFunc 는 지역변수.outer스코프에서만 접근 console.log(this); // 전역 or obj2 } innerFunc(); // 6) 일반함수로 직접 호출("." 이 없다.) this 는 전역 var obj2 = { innerMethod: innerFunc }; obj2.innerMethod(); //.. 자바스크립트 문법/중고급(비동기_프라미스_this) 2022. 10. 20. 24장 클로저 준비 운동 js 엔진은 함수가 호출될 때, 1) 함수를 호출한 위치가 아니라 정의한 위치(렉시컬 스코프) 에 따라 상위 스코프를 결정하고, 2) 상위 스코프를 내부슬롯에 저장. 클로저? 어디에 써? 변수 직접 접근변경을 막는 것과 같이 상태를 은닉해서, 특정 함수에게만 상태 변경을 허용하기 위해 사용. 클로저(Closure)란? 중첩 함수에서 함수가 종료된 이후에도, 내부 함수가 외부 함수의 변수를 참조하게 만든다는 거. 몬소리야? 외부 함수가 실행 종료된 이후, 외부 함수의 변수에 어떻게 접근 가능한가? 몬소리야. 어떻게? 1) 실행 컨텍스트 2) 렉시컬 스코프 생성/기억 상위 스코프(외부 함수)의 변수를 참조하던 내부 함수를 return 외부 함수는 .... 죽어도, 유산은 남아있는 거. 어디에? 내.. 자바스크립트 문법/중고급(비동기_프라미스_this) 2022. 9. 30. 22장 this 1. this : 메서드에서는 호출한 객체를 가리킴 this 는 객체의 프로퍼티나 메서드를 참조하기 위한 자기 참조 변수 클래스 기반 언어 this 자바스크립트 this 인스턴스 함수가 호출되는 방식에 따라 동적 결정 전역에서, 일반 함수내에서 : window 전역 객체 ---> this 를 일치시킬 방법은? 생성자 함수 내부: 인스턴스 메서드(객체의 프로퍼티가 함수)에서는 호출한 객체 Function.prototype.apply/call/bind 메서드에 의한 간접 호출 //1. 전역 window console.log(this); // window //2. 생성자 함수 내부: 인스턴스 function Person(name) { this.name = name; console.log(this); } con.. 자바스크립트 문법/중고급(비동기_프라미스_this) 2022. 9. 30. 이전 1 다음