들어가기 전에
생성자 함수를 정의해봅니다.
학습 목표
생성자 함수를 정의할 수 있습니다.
생성자 함수를 사용했을 때의 장점을 알 수 있습니다.
핵심 단어
- 생성자
들어가기 전에
생성자 함수를 정의해봅니다.
학습 목표
생성자 함수를 정의할 수 있습니다.
생성자 함수를 사용했을 때의 장점을 알 수 있습니다.
핵심 단어
생성자
객체 생성 함수를 만들어봅시다.
function Person(){
this.name = 'kim';
this.first = 10;
this.second = 20;
this.third = 30;
this.sum = function(){
return this.first+this.second+this.third;
}
}
console.log('Person()', Person()); // undefined
console.log('new Person()', new Person()); // 객체 생성
그냥 함수를 호출할 경우 일반 함수 취급되지만
new 라는 키워드를 붙일 경우 객체를 생성하는 생성자가 됩니다.
생성자를 constructor라고 합니다.
생성자를 이용해 새로운 객체를 생성해봅시다.
var kim = new Person();
var lee = new Person();
console.log("kim.sum()",kim.sum());
console.log("lee.sum()",lee.sum());
각각 객체가 다른 값을 갖게 하려면 어떻게 해야할까요?
이전에 사용했던 Date 함수처럼 생성자 함수가 실행될 때 입력 값을 주도록 할 수 있습니다.
function Person(name,first,second,third){
this.name = name;
this.first = first;
this.second = second;
this.third = third;
this.sum = function(){
return this.first+this.second+this.third;
}
}
var kim = new Person('kim',10,20,30);
var lee = new Person('lee',10,10,10);
이것이 객체를 찍어내는 방법인 constructor 함수를 만드는 방법입니다.
생각해보기
comment
생성자: 객체를 만드는 함수
생성자의 장점 : 하나의 생성자를 바탕으로 각 객체의 인자를 받아 코드 수정을 적게 하여 다양하게 활용할 수 있다.
생성자 : 객체를 만들어내는 공장
생성자 사용의 장점 : 하나의 생성자를 만들어 값을 다르게하여 여러 객체를 만들 수 있다
1) 객체를 생성하는 것
2) 하나의 생성자를 만들어서 각 객체마다 다른 값으로 만들 수 있음
생성자: 사용자가 입력한 값을 받아 객체처럼 활용할 수 있는 함수
변경 사항이 생겼을 때 객체처럼 메소드 내용을 일일이 수정할 필요 없이 새로운 생성자를 선언하여 내용을 동적으로 반영할 수 있음
생성자는 객체를 만드는 공장
생성자를 사용했을 때의 장점은 객체를 매 경우마다 만들어서 코드를 작성하는 수고를 덜어주어
코드가 간단해지고 중복 작업이 안하게 되어 코드 작성이 쉽고 유지 관리가 쉬워진다.
new 마법이 키워드
새로운 객체를 만드는 공장
공장의 기능을 쉽게 바꾸고 적용할수 있다.
새로운 객체를 생성하기 위한 공장
유지보수가 간편해지고 코드가 간결해진다.
객체를 만드는 함수, 같은 종류의 객체를 각각의 입력값을 받아 생성자를 통해 쉽게 만들수 있다.
new가 앞에 붙어있으면 일반 함수가 아닌 "생성자 함수"이다.
생성자를 이용하여 다른 값을 가지는 고유의 객체들을 편하고 쉽게 여러 개를 쉽게 만들어낼 수 있다.
function 안에서 return { 객체 } 를 하는 것과, 수업중에서처럼 function 안에서 return을 쓰지않고 this.name = name 으로 만들어주는 것에는 어떤 차이가 있을까요?? 수업중에 사용하신 방식으로 생성자함수를 만들었더니, VSCode 에서 class로 변경을 제안하길래 궁금해서 여쭈어봅니다!
생성자란 객체를 만들어내는 함수다. 생성자를 사용할 경우 실행할 때마다 새로운 객체가 양산되게 할 수 있다.
생성자란 객체를 찍어내는 함수이다 , 객체의 틀을 만들어놓고 생성자로 객체를 정의함으로써 객체의 수가 많아저도 관리하기 용이해진다
생산자(constructor)는 함수이다. 그렇기에 객체라는 다양한 데이터가 있는 형식을 파라미터를 이용해서 활용할 수 있도록 해준다. 객체와 형식은 다르지만, 그 속에 키값과 벨류값이 존재한다는 것, 그 속에서 함수를 벨류값으로 가질 수 있다는 점에서 복잡한 데이터 식을 하나로 묶어주고 수정하는 것을 용이하게 만들어 준다.
* constructor는 객체를 찍어내는 틀이다.
생성자를 사용했을 때 기본틀을 바탕으로 값을 대입하여 원하는 객체의 결과값을 얻을 수 있다.
생성자(constructor)는 객체를 생성하는 역할을 하며,
객체를 생성하는 역할을 하는 함수를 생성자(constructor) 함수라고 한다.
재사용할 수 있는 객체 생성 코드를 구현할 수 있다.
같은 형식의 객체를 생성할 수 있음.
각 개체의 속성을 빠르게 바꾸고 생성 가능.
Construct 기능은 같은 형식으로 이루어진 객체를 형식화한 것이다. 이로써 수많은 같은 형식의 객체들의 세부지정값을 한번에 바꿀 수 있다.
생성자를 사용하면 객체의 변수를 자유롭게 만들 수 있고 여러개의 객체를 만들 수 있다는 장점이 있습니다.
일반 함수에 this와 키워드로 여러 객체들을 연결시키는 것
다른 객체들을 만들 때 속성들을 지정해주지 않아도 된다
new키워드 하나로 생성자를 사용하면 객체를 새로 생성할 때마다 그 속성값을 정의해주지 않아도 된다. 그냥 생성자 함수의 인자로 주면 된다.