2021.07.22.

기존의 사용법

const User = function (name, age) {
	this.name = name;
	this.age = age;
	this.showName = function() {
		console.log(this.name);
	}
}
const mike = new User("Mike", 30);

ES6에 추가된 스펙

class User2 {
	constructor(name, age) { //객체를 만들어주는 생성자 메소드
		this.name=name;
		this.age=age;
	}
	showName() { //__proto__내부에 존재하게 된다
		conosole.log(this.name);
	}
}
const tom = new User2("Tom", 19);

extents 상속

class Car {
	constructor(color) {
		this.color = color;
		this.wheels = 4;
	}
	drive() {
		console.log("drive...");
	}
	stop() {
		console.log("STOP!");
	}
}

class Bmw extends Car {
	constructor(color) {
		super(color ); //부모의 생성자 사용
		this.navigation = 1;
	}
 park() {
	console.log("PARK");
	}
	stop() { //method overriding 메소드 오버라이딩
		console.log("OFF");
		//만약 super.stop()을 사용하면 "STOP!"호출 됨
	}
}

const z4 = new Bmw("blue");