티스토리 뷰
var 학생1 = { name : 'Kim', age : 15 };
var 학생2 = { name : 'Park', age : 15 };
...
반복되는 object를 계속 만드는 것은 너무 비효율적!
constructor(생성자) 사용해서 오브젝트를 복사할 수 있다
//var 학생1 = { name : 'Kim', age : 15 };
function 기계(){
this.name = 'Kim';
this.age = 15;
}
constructor(생성자)를 오브젝트 복사 기계라고 생각하면 된다.
function이라는 함수 키워드를 사용하면 되고
그 안에 this.name과 this.age를 넣으면 오브젝트 복사 기계가 완성 된다.
this는 새로 생성되는 오브젝트를 뜻한다(멋진 개발자 용어로 인스턴스라고도 함)
고로 this.name은 새로 생성되는 오브젝트의 name에 "Kim"을 넣어달라는 뜻
오브젝트 복사 기계를 만들었으니
만든 기계를 가지고 새로운 오브젝트를 생성하고 싶다면?
//var 학생1 = { name : 'Kim', age : 15 };
function 기계(){
this.name = 'Kim';
this.age = 15;
}
var 학생1 = new 기계();
var 학생2 = new 기계();
new 키워드 + 오브젝트 복사 기계 이름 을 쓰면 기계로부터 새로운 오브젝트를 만들 수 있다.
그리고 만든 오브젝트를 변수에 넣으면 됨
만약 오브젝트에 함수가 들어가야 한다면?
함수도 오브젝트에 추가 가능~
function 기계(){
this.name = 'Kim';
this.age = 15;
this.sayHi = function(){
console.log('안녕하세요' + this.name + ' 입니다');
}
}
var 학생1 = new 기계();
var 학생2 = new 기계();
학생2.sayHi();
기계에 this.sayHi()를 추가하면 기계로부터 생성되는 모든 학생들이 sayHi 함수를 가지고 있게 된다.
그럼 모든 학생1, 학생2가 sayHi 함수를 사용할 수 있음 굳
근데 학생 오브젝트 만들때 각각 다른 이름, 나이값을 부여하고 싶으면?
함수에 파라미터를 추가하면 된다
function 기계(이름,나이){
this.name = 이름;
this.age = 나이;
this.sayHi = function(){
console.log('안녕하세요' + this.name + ' 입니다. 제 나이는'+ this.age + '입니다.');
}
}
var 학생1 = new 기계('Park', 20);
var 학생2 = new 기계('Kim', 25);
'Coding > javascript' 카테고리의 다른 글
[javascript] prototype 문법 (0) | 2023.07.23 |
---|---|
[javascript] var, let 비교할 수 있는 코드 (0) | 2023.05.02 |
[javascript] 배열 메소드 (추가ing) (0) | 2023.04.19 |
[JavaScript] JavaScript 웹 브라우저 동작 원리 (0) | 2023.04.09 |
[JavaScript] 조건 맞으면 새로운 배열을 만들어주는 array.filter( ) (0) | 2023.03.29 |