javascript class에서의 static이다. 다른 언어와 마찬가지로 인스턴스화 없이 사용이 가능하다.

 

class Square {
   constructor (_width) {
      this.width = _width;
      this.height = _width;
   }

   // static 함수
   static equals (a, b) {
      return a.width * a.height === b.width * b.height;
   }
}

let square1 = new Square(8);
let square2 = new Square(9);
let square3 = new Square(8);

console.log(square1);
console.log(Square.equals(square1, square2));
console.log(Square.equals(square1, square3));

 

extends (상속) 역시 특별한건 없지만 super라는 명령어를 통해 상위 클래스의 항목을 가져올수있다.

 

class Person {
   constructor (_name, _age) {
      this.name = _name;
      this.age = _age;
   }

   describe () {
      console.log(`I am ${this.name} age I am ${this.age} years old`);
   }
}

// Person class를 상속받음
class Programmer extends Person {
   constructor (_name, _age, _yearsOfExperience) {
   
      // 부모 class의 생성자를 이어받음
      super(_name, _age);

      this.yearsOfExperience = _yearsOfExperience;
   }

   code() {
      console.log(`coding ...`);
   }

}

let person1 = new Person('sample1', '19');
let person2 = new Programmer('sample2', '20');

person2.describe();
person2.code();

 

'JavaScript > Vanilla JS' 카테고리의 다른 글

Array.prototype.forEach()  (0) 2021.03.03
정렬하기 array.sort()  (0) 2021.03.02
클래스 (Class) 2  (0) 2021.02.23
클래스 (Class)  (0) 2021.02.22
로컬스토리지 (localStorage)  (0) 2021.02.18