/* 클래스 만들기
클래스란? 청사진 같은 개념
클래스는 항상 첫 글자를 대문자로 쓴다.
클래스의 요소는 속성이라고 부른다*/
function Wannaone (member, age, ranking) {
//인스턴스가 만들어질 때 실행되는 코드
this.member = member;
this.age = age;
this.ranking = ranking;
} //ES5 ver.
class Ohmygirl {
constructor (member, age, part) {
this.member = member;
this.age = age;
this.part = part;
}
} //ES6 ver.
/* 인스턴스란?
클래스를 본따서 만든 객체
new라는 키워드로 해당 클래스의 인스턴스를 만들 수 있다
*/
let trainee1 = new Wannaone('kangdaniel', 25, 1);
// trainee1 = {member: 'kangdaniel', age: 25, ranking:1}
let trainee2 = new Ohmygirl('jiho', 22, 'sing');
// trainee2 = {member: 'jiho', age: 22, part: sing}
//클래스의 메소드 정의
//메소드란? 요소가 함수일 때 메소드라고 한다
Wannaone.prototype.sing = function() {
console.log(this.member + ' 멤버는 노래를 부릅니다.')
}; //ES5
class Ohmygirl {
constructor (member, age, part) {
this.member = member;
this.age = age;
this.part = part;
}
rap() = {console.log(this.member + '멤버는 랩을 합니다.')}
} // ES6
// 인스턴스의 사용
trainee1.member; // 'kangdaniel'
trainee1.sing(); // 'kangdaniel 멤버는 노래를 부릅니다.'
trainee2;
// {member: 'jiho', age: 22, part: 'sing'}
/*
prototype : 청사진을 만들 떄 쓰는 원형 객체.
Car.prototype.sing = ~ < 인 것은 Car라는 원형 객체에 sing이라는 요소를 만들 거야
constructor : 인스턴스가 초기화될 때 실행하는 생성자 함수
this : 코드들이 실행되기 위한 환경의 물리적인 객체. new로
인스턴스를 생성했을 때, 바로 그 인스턴스가 바로 this의 값이
된다.
*/
//배열과 class, instance는 닮아 있다.
let arr = new Array(1, 2, 3);
arr = [1, 2, 3];