JavaScript - prototype & class 상속

김민재·2021년 8월 15일
0

TIL, Deep Javascript

목록 보기
18/22
post-thumbnail
/*
const nunu  = {
  q : 'consume',
  w : 'snowball'
}
const garen  = {
  q : 'strike',
  w : 'courage'
}
*/

//class는 object 엄청 많이 뽑아내는 기계

function machine(skill) {//부모
  this.q = skill;
  this.w = 'snowball';
//this는 machine으로부터 생성되는 object들(=instance) 
}

//자식  - 부모가 자식에게 불려주는 관계
const nunu = new machine('consume');//객체 생성
const garen = new machine('stike');//객체 생성

console.log(nunu);
console.log(garen);


class Hero{
  constructor(skill) {
     this.q = skill;
    this.w = 'snowball';
  }
}
new Hero();
//prototype써서 자식 object에게 데이터를 물려줄 수 있음

function machine(skill) {
  this.q = skill;
  this.w = 'snowball';
  
  /*속성을 물려받고싶을때 1>여기에 추가하면
  자식들이 직접 속성 {.q : skill}을 가진다.*/
}

//자식  - 부모가 자식에게 불려주는 관계
const nunu = new machine('consume');//객체 생성
const garen = new machine('stike');//객체 생성


//prototype은 유전자라 역할을 한다고 이해하면 이해가 쉽다. 
// 상속 기능을 구현하는 두번째 장치
machine.prototype.name = 'kim'
  /*속성을 물려받고싶을때 2>여기에 추가를 하면
부모만 {name : 'kim'}을 가진다
*/

object 에서 자료 뽑을 떄 일어나느 일

만약 객체에서 nunu.name 항목의 자료를 뽑고싶다면 다음과 같이 쓰고
nunu가 name 항목있다면 출력한다
1. 직접 자료 가지고 있으면 그거 출력
name이 없는경우 nunu의 부모, 부모 유전자게 물어본다
만약 있다면 거기서 name을 출력하고
2. 없으면 부모 유전자까지 뒤짐
3.없으면 프로토타입 체인을 쓰면서 부모의 부모 유전까지 계속 뒤진다

array 자료에 .sort()가 붙는 이유?

const arr = [4,3,1]; // 인간 방식
cosnt arr = new Array(4,2,1);//컴퓨터 방식
arr.length나 sort같은 기본 함수들이 부모 유전자로부터 기록이 되어있어 쓸 수 있는 것

new Object() 기계들이 이런식으로 존재한다.

모든 array자료에 슬 수 있는 함수를 추가하고싶으면?

Array.prototype.newFunc = function(){

}
//이렇게 유전자를 추가할수도있땅

profile
자기 신뢰의 힘을 믿고 실천하는 개발자가 되고자합니다.

0개의 댓글