생성자 함수(prototype)

function User(first, last) {
  //	this = {}
	this.firstName = first
	this.lastName = last
	// return this
}
User.prototype.getFullName = function () {
	return `${this.firstName} ${this.lastName}`
}

const lee = new User('lee', 'jj')
const amy = new User('Amy', 'Clarke')

this

function User(name) {
	this.name = name
}

// 메소드 1
User.prototype.normal = function() {
	console.log(this.name)
}

// 메소드 2(화살표 함수)
User.prototype.arrow = () => {
	console.log(this.name)
}

const lee = new User('lee')

lee.normal() // lee
lee.arrow()  // undefined

ES6 클래스

class User {
	constructor(first, last) {
		this.firstName = first
		this.lastName = last
	}
	getFullName() {
		return `${this.firstName} ${this.lastName}`
	}
}

ES6 클래스 상속

class Vehicle {
	constructor(name, wheel) {
		this.name = name
		this.wheel = wheel
	}
}

class Car extends Vehicle {
	constructor(name, wheel, license) {
		super(name, wheel)
		this.license = license
	}
}