JavaScript 44

Prototype Chain과 Pseudoclassical Instantiation 그리고 class- JavaScript

prototype 모델의 청사진을 만들 때 쓰는 원형 객체이다(original form). 같은 생성자로부터 만들어진 인스턴스 객체들은 모두 이 원형 객체를 공유한다. constructor(생성자) 인스턴스가 초기화 될 때 실행하는 생성자 함수이다. this 함수가 실행될 때, 해당 scope마다 생성되는 고유한 실행 context(execution context). new 키워드로 생성했을 때는 해당 인스턴스가 바로 this의 값이 된다. .call(this) 첫 번째 인자로 전달된 객체를 this로 삼는다. 뒤에 인자를 추가해 넘겨줄 수 있다. 인자를 list 형태로 넘겨준다. .apply(this) 첫 번째 인자로 전달된 객체를 this로 삼는다. 뒤에 인자를 추가해 넘겨줄 수 있다. 인자를 Arr..

JavaScript 2020.10.28

201028 수 TIL Object Oriented Programming(객체지향 프로그래밍) - JavaScript

1. 컴퓨터 프로그래밍의 세 가지 가족 기계어 어셈블리어 고급 언어 1-1. 기계어 0과 1로 조합된다 컴퓨터의 네이티브 언어이다 프로그램 하기 어렵다(1이나 0을 하나만 잘 못 써도 프로그램이 작동하지 않는다) 1-2. 어셈블리어 특정 어셈블리어는 해당하는 어셈블리어로 만들어진 cpu에만 돌아가며 적은 명령어로 이루어진다 기계어에 비해 접근하기 쉬운 프로그래밍 언어이다 컴퓨터가 처리하기 위해서는 기계어로 번역되어야 한다 1-3. 고급언어 영어와 비슷하게 만들어진다 Interpreter가 컴파일을 하지 않아도 한 줄씩 읽어들여 완성되지 않아도 바로 볼 수 있도록 코드를 처리해준다 고급언어는 절차 지향 언어(Procedural languages)와 객체 지향 언어(Object-Oriented languag..

JavaScript 2020.10.28

고차함수란? - JavaScript

함수를 인자로 받거나 함수를 리턴하는 함수이다. 이 때, 다른 함수의 인자로 전달되는 함수를 콜백 함수라고 부른다. function isEven(num) { num % 2 === 0; } //여기선 isEven이 iteratee(순회하는 함수) function checkElement (arr, isEven) { let result = false; for(let i = 0; i < arr.length; i+= 1) { if(isEven(arr[i])) { result = true; } } return result; } 고차함수의 장점 이전에 만들었던 함수를 재사용이 가능하고 추상적인 활용이 가능하다.

JavaScript 2020.10.06

재귀(Recursion)와 재귀 호출 - JavaScript

재귀 구조는 동일하지만 더 작은 경우를 해결함으로써 그 문제를 해결하는 것. 즉, 문제를 더 나뉘지 않을 정도로 쪼개서 하나하나 해결하는 것. 재귀가 사용되는 상황 주어진 문제가 (구조는 비슷하고) 더 작은 문제로 나뉘어 질 수 있는 경우 중첩된 루프가 많거나 중첩의 정도(number of loops)를 미리 알 수 없는 경우 재귀 호출 문제를 푸는 실행과정 도중에 자기 자신을 호출하는 것 재귀함수의 일반적인 템플릿 function recursive(input1, input2, ...) { // 재귀의 기초 (base case) if (문제를 더 이상 쪼갤 수 없을 경우) { return 단순한 문제의 해답; } // recursive Case // 그렇지 않은 경우 return 더 작은 문제로 새롭게 ..

JavaScript 2020.10.05

동기(synchronously) 비동기(asynchronously) 호출 - JavaScript

blocking vs non-blocking blocking = 내가 이거 다 끝날 때까지 다 멈추고 기다리고 있어! non-blocking = 난 이거 하고 있을 테니까 딴거 하고 있어! 전화와 문자의 차이 비동기의 주요 사례 -DOM Element의 이벤트 핸들러 =마우스, 키보드 입력(click, keydown 등) =페이지 로딩(DOMContentLoaded 등) -타이머 =타이머 API(setTImeout 등) =애니메이션 API(requestAnimationFrame) -서버에 지원 요청 및 응답 =fetch API =AJAX(XHR) Philip Roberts Help I'm stuck in an event loop 참고 www.youtube.com/watch?v=6MXRNXXgP_0

JavaScript 2020.09.29