1. 상속


부모 클래스의 특징을 자식 클래스가 물려받는 것

extends

extend 키워드는 클래스를 다른 클래스의 자식으로 만들기 위해 class선언 또는 class 식에 사용

class larva {
  constructor(){
    this.age = 0;
    this.color = "green";
    this.food = "leaf";
  }
  eat(){
    return "eating leaf":
  }
}
const larva = require("./larva");

class Butterfly extends larva {
  super(food); // larva의 food 속성을 상속 받는다 
  this.age = 1;
  this.color = "yellow"
  this.canfly = true 
}

let TigerButterfly = new Butterfly;

console.log(TigerButterfly); 
// {age : 1 , color : "yellow" , food : "leaf" , canfly : true}

console.log(TigerButterfly.eat());
// "eating leaf"

2. Prototype Chaining


let person = function(name,gender,birthyear) {
  this.name = name;
  this.gender = gender;
  this.birthyear = birthyear;
}

person.prototype.calculateAge = function() {
  let age = new Date().getFullYear() - this.birthyear
  console.log(age);
}

person.prototype.city = 'seoul';

let james = new person('james','male','1998');
james.calculateAge();
console.log(james.hasOwnProperty('name')); // true
console.log(james.hasOwnProperty('city')); // false

let anna = new person('anna','Female','1997');

console.log(anna);

스크린샷 2022-04-14 오후 9.47.17.png

e.g.

let arr = [1,2,3];

console.log(arr);
arr.push(4);

let arr2 = new Array(3).fill(1);