관리 메뉴

java,javascript,android,php,sql,공부용,메모용

constructor 초기화 / 컨스트럭터 초기화, 자바스크립트 class / classes - 객체지향 자바스크립트 06 본문

javascript, jQuery & Node.js

constructor 초기화 / 컨스트럭터 초기화, 자바스크립트 class / classes - 객체지향 자바스크립트 06

yy_dd2 2022. 4. 25. 07:23
반응형

ES6 classes 검색하면 웹브라우저에서 제공하는 부분 확인가능
https://caniuse.com
현재 익스11에서 classes 지원 안하지만 충분함

classes : 이미 가지고 있는 기능을 활용하여 사용되기 때문에 큰 문제가 없다


바벨은 자바스크립트 컴파일러이다
ES6의 코드를 이전 코드로 변환해줌 (이전으로 이후로)
https://babeljs.io

 

Babel · The compiler for next generation JavaScript

The compiler for next generation JavaScript

babeljs.io

class Person{
    // 1. class의 함수 정의
    // class로 객체를 만들때 객체에 속하는 메소드(함수)를 만들 때는 function을 사용하지 않는다
    // sum(){

    // }
    // 2. 자바스크립트는 객체를 만들때 constructor가 먼저 실행된다
    // constructor는 초기값을 설명해주는 내장된 함수
    // constructor는 객체가 만들어지기 직전에 실행되도록 정의한 약속된 함수의 이름
    constructor(name, first, second){
        this.name = name;
        this.first = first;
        this.second = second;
        console.log('constructor');
    }


    sum(){
    //return this.first+this.second;
    return 'class prototype : '+ (this.first+this.second);
    }
    
}

// Person.prototype.sum = function(){
//     //return this.first+this.second;
//     return 'prototype : '+ (this.first+this.second);
// }
var kim = new Person('kim', 10, 20);
// console.log("kim", kim);        // kim Person {}
kim.sum = function(){
    return 'this : '+ (this.first+this.second);
}
var lee = new Person('lee', 10, 10);
console.log("kim.sum()", kim.sum());
console.log("lee.sum()", lee.sum());
반응형
Comments