1. 클래스
1) 생성자 함수
아래와 같이 단순히 객체 데이터와 메소드를 사용하게 되면, 매번 메모리에 할당하게 되며 비효율적으로 코드를 작성하게 된다.
const orosy = {
firstName: 'Orosy',
lastName: 'Kim',
getFullName: function () {
return `${this.firstName} ${this.lastName}`
}
}
console.log(orosy.getFullName())
const amy = {
firstName: 'Amy',
lastName: 'Clarke',
getFullName: function () {
return `${this.firstName} ${this.lastName}`
}
}
console.log(amy.getFullName())
const neo = {
firstName: 'Neo',
lastName: 'Smith',
getFullName: function () {
return `${this.firstName} ${this.lastName}`
}
}
console.log(neo.getFullName())
이러한 비효율적인 코딩을 해결할 수 있는 방법이 바로 생성자 함수!
'리터럴 방식'이 아닌 다소 복잡한 방식이다.
생성자 함수의 사용 예제
function User(first, last) {
this.firstName = first,
this.lastName = last
}
User.prototype.getFullName = function () {
return `${this.firstName} ${this.lastName}`
}
const orosy = new User('Orosy','Kim')
const amy = new User('Amy', 'Clarke')
const neo = new User('Neo', 'Smith')
console.log(orosy)
console.log(orosy.getFullName())
console.log(amy.getFullName())
console.log(neo.getFullName())
리터럴 방식?
변수에 할당 연산자(=)를 통해 중괄호를 열고 닫는 것처럼 특정한 기호를 이용하여 손쉽게 데이터를 만드는 방식
'', "", {}, [] 등이 모두 리터럴 방식!
const orosy = {}
추가적으로 생성자 함수는 일반 함수와 비교하기 위하여 개발자들끼리 암묵적으로 첫 문자를 대문자로 사용하도록 PascalCase를 사용한다!