ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체 지향 JavaScript (Class)
    concept/javascript 2020. 4. 2. 22:17
    •  
    •  
    • 하나의 모델이 되는 청사진(blueprint)를 만들고, 그 청사진을 바탕으로 한 객체(object)를 만드는 프로그래밍 패턴

    • ES5 클래스는 함수로 정의할 수 있다.

    function Car (brand, name, color) {
    // 인스턴스가 만들어질 때 실행되는 코드
      this.brand = brand;
      this.name = name;
      this.color = color;
    } // => 클래스 속성의 정의
    
    Car.prototype.refuel = function() {
     // 연료 공급을 구현하는 코드
    }
    
    Car.prototype.drive = function() {
     // 운전을 구현하는 코드
    } // => 클래스 메소드의 정의

     

    • ES6 에서는 class 라는 키워드를 이용해서 정의할 수 있다.ES6 에서는 class 라는 키워드를 이용해서 정의할 수 있다.
    class Car {
      constructor(brand, name, color) {
      // 인스턴스가 만들어질 때 실행되는 코드
      this.brand = brand;
      this.name = name;
      this.color = color;
      } // => 클래스 속성의 정의
      refuel() { }
      drive() { } // => 클래스 메소드의 정의
    }

     

    • new 키워드를 통해 클래스의 인스턴스를 만들어낼 수 있다.
    let avante = new Car('hyundai', 'avante', 'blue');
    let mini = new Car('bmw', 'mini', 'white');
    let beetles = new Car('Volkswagen', 'beetles', 'red');
    // 각각의 인스턴스는 Car 라는 클래스의 고유한 속성과 메소드를 갖는다.

     

    • 클래스에 속성과 메소드를 정의하고 인스턴스에서 이용한다.

    • prototype : 모델의 청사진을 만들 때 쓰는 원형 객체

    • constructor : 인스턴스가 초기화될 때 실행하는 생성자 함수

    • this : 함수가 실행될 때, 해당 scope 마다 생성되는 고유한 실행 context (execution context)

      new 키워드로 인스턴스를 생성했을 때는 해당 인스턴스가 바로 this의 값이 됨
    • 배열에서 유사성을 발견할 수 있다.

    let arr = new Array('code', 'states', 'pre');
    // === let arr = ['code', 'states', 'pre']
    arr.length; // 3
    arr.push('course'); // 새 element 추가

     

     

    총정리

    'concept > javascript' 카테고리의 다른 글

    DOM (Document Object Model)  (0) 2020.04.11
    Parameter  (0) 2020.04.02
    Closure (클로져)  (0) 2020.04.02
    Scope (스코프)  (0) 2020.04.02
    [ ] === [ ] // false? 참조 타입(reference type)이란?  (0) 2020.03.31

    댓글

Designed by Tistory.