Today’s Key 🔑


배열의 find 메소드

const arr = [1, 2, 3, 4, 5];

const ouput = arr.find((el) => {
  if (el === 3) return true;
  else false;
});

output; // -> 3


prototype을 사용한 Pseudoclassical 한 방식으로 상속 연결해주기

조건

// Humans 생성
const Humans = function (name) {
  this.name = name;
};

Humans.prototype.sleep = function () {
  console.log("zzz");
};


// 상속받는 Student 객체 생성
const Student = function (name) {
  Humans.apply(this, name);
  this.age = 25;
};


부모 객체인 Humans처럼 name 속성을 가지기 위해서 .call(this) .apply(this) 형태로 this를 묶어준다. 만약에 constructor에 아무런 인자가 없다면 인자는 생략 가능하다. 자식 객체만 가지는 특정 요소도 추가해줄 수 있다.

// Object.create() 함수를 사용하여 부모의 prototype을 복제한다.
Student.prototype = Object.create(Humans.prototype);

// Student가 생성하는 인스턴스의 constructor를 Student로 정의해준다.
Student.prototype.constructor = Student;

// 자식만 단독으로 가지는 메소드도 구성할 수 있다.
Student.prototype.learn = function () {};


ES6의 class, extends, super 키워드로 상속 이해하기

// 부모 클래스인 Humans
class Humans {
  constructor(name) {
    this.name = name;
  }
  sleep() {}
}


extends 키워드로 상속 조건을 만들어줄 수 있다. call 또는 apply로 부모의 요소를 묶어주는 것 대신, super 키워드를 사용하면 된다.

class Student extends Human {

	constructor(name) {
		super(name);
    this.age = 25;
	} // 부모요소와 constructor로 받는 부분이 동일하면 생략 가능하다.

	sleep() {
		super.sleep ~ // 찾아보기
	}
	learn() {}
}