코어자바스크립트 총정리2

KHW·2021년 3월 13일
0

코어자바스크립트

목록 보기
19/19

4장

콜백함수(this지정할게 없어서 bind메소드사용)

Promise

async, await


5장

스코프 : 식별자에 대한 유효범위

스코프체인

클로저 : 어떤 함수에서 선언한 변수를 참조하는 내부함수에서만 발생하는 현상

(그 내부함수는 자신의 있었던 기억(=실행컨텍스트내용)을 가지고있다.)
(외부함수 outer에서 정의된 변수 a를 참조하는 내부함수 inner에서 발생하는 현상)

=> 과거에 내부함수가 가지고 있는 실행컨텍스트의 스코프체인과 관련된 스코프범위의 내용을 GC되지않고 기억하고있는 것

클로저의 장점

  1. 콜백함수 내부에서 외부 데이터를 사용하고자 할때
  2. 접근 권한 제어(정보 은닉) => 생성자 함수( return 사용) , 객체(Object.freeze) 둘다 가능

디바운스 : 짧은 시간 동안 동일한 이벤트가 많이 발생할 경우 이를 전부 처리하지않고 처음 또는 마지막에 발생한 이벤트에 대해 한 번만 처리

커링


6장

constructor

prototype

instance

Constructor.prototype === instance.__proto__

배열.constructor === Array

let a = [1,2,3]
console.log(a.constructor === Array)	// true

메서드 오버라이드

원본을 제거하고 다른 대상으로 교체하는 것이 아니라 원본이 그대로 있는 상태에서 다른 대상을 그 위에 얹는다.

var Person = function(name){
  this.name = name;
};

Person.prototype.getName = function(){
  return this.name;
};

var iu = new Person('지금');
iu.getName = function(){
  return '바로' + this.name;
};
console.log(iu.getName()); 		//바로지금
console.log(iu.__proto__.getName());	//undefined

다른 결과의 이유는 ? -> this가 서로 다르기때문
첫번째 console은 this가 iu이고 두번째 console은 this가 iu.__proto__이다.

var Person = function(name){
  this.name = name;
};

Person.prototype.getName = function(){
  return this.name;
};

Person.prototype.name = '김형욱';	//Person.prototype에 name이라는 프로퍼티 추가
var iu = new Person('지금');

iu.getName = function(){
  return '바로' + this.name;
}; 
console.log(iu.getName()); 		//바로지금
console.log(iu.__proto__.getName());	//김형욱

7장

클래스

인스턴스

스태틱 메소드 vs 프로토타입 메서드

ES5의 생성자함수 => ES6의 class내에서 constructor

ES5의 메서드 => ES6의 static 메서드

ES5의 prototype.메서드 => ES6의 프로토타입 메서드


모든 구체적 내용

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글