자바스크립트에서 배열을 만드는 방식에는 크게 두가지가 있습니다.
1.배열 리터럴 방식
const fruits=['banana' ,'apple' , 'kiwi']
2. Array 생성자 함수 방식
const fruits = new Array('banana' ,'apple' , 'kiwi'])
console.log(fruits)
를 찍어보면
prototype
하단에 여러 매소드들이 담겨져 있는걸 볼 수 있습니다.
new 키워드를 통해 생성자 함수에서 반환된 값 을 인스턴스 라고 하는데 그 인스턴스에 속성, 메소드를 등록할 수 있도록 해주는게 바로 프로토타입 객체 인것 입니다!
생성자 함수를 직접 만들어 봅시다!
function Person(name,age){
this.name = name;
this age = age ;
}
객체를 생성해주는 생성자 함수를 정의 해주고
const person1 = new Person("potter" , 18)
인스턴스도 만들어 줍니다.
참고로
함수 이름의 첫 글자는 대문자로 시작하고, 반드시 'new' 연산자를 붙여 실행합니다.
console.log(person1)
콘솔에 person 1 을 찍어보면
Person() 에 정의된 객체가 보여집니다.
이 person1 이라는 인스턴스에 매소드를 등록해 봅시다.
Person.prototype.introduce = function(){
return `제 이름은 ${this.name} 이고 나이는 ${this. age}살 입니다`
}
Person() 이라는 생성자 함수에 introduce()라는 매소드를 등록을 하였으니 person1 인스터스에서 intorduce()매소드를 바로 사용할 수 있게 됩니다.
person1.introduce()
콘솔에 찍어보면
제 이름은 potter 이고 나이는 18살 입니다
가 나오게 되는것이죠!
마지막으로 용어들을 간략히 정의해봅시다!
인스턴스 : 생성자 함수에서 반환된 값
생성자 함수 : 객체를 생성해주는 함수
프로토타입 : 인스턴스에 별도의 속성, 메소드를 등록하는 객체