class

column clash·2021년 8월 18일
0
  // 상속을 구현하는 es6 방법 : class
      class 부모 {
        constructor() {
          this.name = "kim";
        }
      }

      var 자식 = new 부모();

      // 함수추가시
      // 방법1
      class 부모2 {
        constructor() {
          this.name = "kim";
          // constructor 에 추가하든가 (자식이 직접함수를 가짐)
          this.sayHi = function () {
            console.log("hello");
          };
        }
      }

      var 자식2 = new 부모2();

      // 방법2
      class 부모3 {
        constructor() {
          this.name = "kim";
        }
        // 부모.prototype 에 추가됨
        sayHi() {
          console.log("hello");
        }
        // 함수를 이렇게 더 추가해도 되고.
        sayHello() {
          console.log("hello");
        }
      }

      부모.prototype.sayGoodDay = function () {}; // 이렇게도 추가가능

      var 자식3 = new 부모3();
      console.log(자식3); // 부모 {name:kim}
      console.log(부모.prototype); // {constructor:f, sayhi}
      console.log(자식.__proto__); // {constructor:f, sayhi}
      Object.getPrototypeOf(자식); // 자식.__proto__ 와 같음. {constructor:f, sayhi}

      // 파라미터
      class 과일 {
        constructor(과일이름) {
          this.name = 과일이름;
        }
        // 부모.prototype 에 추가됨
        alim() {
          console.log(this.name + "판매합니다.");
        }
      }

      var 바나나 = new 과일("바나나를");
      바나나.alim();

      // 객체지향 문법, object 지향문법의 기초.
      // 객체지향문법은 왜 쓰냐면
      // object 여러개 만들어 쓰려는 것.
class 할아버지2 {
        constructor(name) {
          this.성 = "kim";
          this.이름 = name;
        }
        sayHi() {
          console.log("안녕");
        }
      }

      class 아버지2 extends 할아버지2 {
        constructor(name) {
          super(name);
          this.나이 = 50;
        }
        sayHi() {
          console.log("안녕~~");
          super.sayHi(); // 부모 prototype
        }
      }

      var 아버지3 = new 아버지2("만수");
      아버지3.sayHi();
profile
풀스택 개발 중...

0개의 댓글