함수 바인딩 call, apply, bind
·
Web/Javascript
함수 바인딩Javascript는 함수가 어떻게 호출 되었는지에 따라 this 객체가 동적으로 할당된다. 크게 함수 호출 방식은 함수, 메소드, 생성자 함수, call/apply/bind 호출이 있다. Javascript는 렉시컬 스코프를 따라 함수의 상위 스코프를 결정한다. 글로벌 영역에 함수 호출을 예로 들면 this는 상위 스코프인 전역 객체(Global Object)를 의미한다. Browser-side에서는 window, Service-side에서는 global 객체가 전역 객체가 된다. var name = 'john';function greet() { console.log(`hello, ${this.name}`); // this: window}greet(); // 'hello, john'var ..
Iterator 반복 처리
·
Web/Javascript
목표Iterator 객체를 생성하고, 반복 처리에 활용한다. 사용이유여러 HTTP Request를 보내서 받은 stream 데이터를 사용자 입장에서 가시적으로 확인할 수 있도록 진행바가 필요했다. 구현Set을 이용한 UniqueQueue작업이 담긴 배열을 순차적으로 진행하고 진행 중인 작업 수가 최대치일 경우 보류하여 이후에 진행되도록 작업하였다.class Worker { private readonly works: Work[]; private readonly workQueue: UniqueQueue; private readonly maxWorker = 60; constructor(requests: WorkRequest[]) { this.works = requests.ma..
Javascript 정규표현식으로 URL 찾아서 변환하기
·
Web/Javascript
정규표현식 /(https?:\/\/[^\s]+)/g https?:\/\/ http:// 또는 https:// 찾음 [^\s]+ 공백이 아닌 문자열을 하나 또는 그 이상 찾음 g Global을 표현하며 문자열 내 모든 패턴을 검색 활용 var str = `Kakao: https://www.kakaocorp.com` let formatted = str.replace(/(https?:\/\/[^\s]+)/g, '$1');