[JavaScript] Class

Song-YunMin·2021년 1월 17일
1

JavaScript

목록 보기
3/22
post-thumbnail
post-custom-banner

Class?

클래스는 대표적으로 자바, PHP, Python 등에서도 지원을 하는데, 자바스크립트는 원래 지원하지 않았다. 원래는 constructor 함수를 통해서 객체를 찍어냈었다.

Class 라는 문법이 ES6(ECMAScript) 부터 업데이트 되며 조금 더 손쉽게 객체지향을 구현할 수 있게 되었다.

클래스라는 문법을 제공하는 브라우저 참고는 아래 사이트에서 하면 된다.

Can I use... Support tables for HTML5, CSS3, etc

그리고 현재 최신코드를 예전 문법으로 보게 하는 사이트가 있다. 이 사이트는 아래와 같다.

Babel · The compiler for next generation JavaScript

소스코드

class Person{
    // 객체에 해당하는 메서드를 만들때?
    constructor(name, first, second){      // 생성자
        this.name = name;
        this.first = first;
        this.second = second;
    }
    // 한번만 정의됨 : 성능 절약
    sum() {
        return 'prototype : ' + (this.first + this.second);
    }
}

let kim = new Person('kim',10 ,20);
kim.sum = function(){   // kim 만 동작을 다르게 정의할 수 있음
    return 'this : ' + (this.first+this.second);
}

let lee = new Person('lee',10,10);
console.log("kim.sum()", kim.sum());    // kim.sum() this : 30
console.log("lee.sum()", lee.sum());    // lee.sum() prototype : 20

장점

  • 기존 객체지향 언어와 비슷한 문법으로 쉽게 접근이 가능하다

단점

  • 기존 프로토타입 문법과 비교했을때 가독성 및 직관성을 높아졌지만 무너지기 쉬운 구조를 가지고 있다고 한다. 하지만 개인적인 생각으로는 그러한 리스크를 안더라도 클래스를 사용하는게 여러모로 좋을 것 같다.

참고

JavaScript 객체 지향 프로그래밍

profile
고독한 서버 개발 3년차
post-custom-banner

0개의 댓글