constructor 사용처 : object를 막 복사하고 싶을때 사용함
출석부 만드는걸로 예시 들어봄
let 학생1 = {name : 'kim', age : 15 }
let 학생2 = {name : 'kim2', age : 15}
let 학생3 = {name : 'kim3', age : 15}
학생정보를 object로 만드려는데 이렇게 하나하나 만들기 너무 귀찮음 그럴때 constructor 씀
function Student() {
this.name = "Kim";
this.age = 15;
}
이게 constructor임. 이거 쓰면 object 무한 생성가능
function쓸때 거의 보통 함수명을 대문자로써줌 (국룰)
constructor 안에서 this는 새로 생성되는 object를 뜻함
this.name = 'Kim'; => 새로 생성되는 object들의 name속성에는 Kim을 넣어주세요
this.age = 15; => 새로 생성되는 object들의 age 속성에는 15를 넣어주세요
new Student();
이렇게하면 object가 뽑힘
let 학생1 = new Student();
만약 모든 학생 object에 sayHi() 함수도 추가하고 싶다면?
function Student() {
this.name = "Kim";
this.age = 15;
this.sayHi = function () {
console.log("안녕하세요" + this.name + "입니다");
};
}
let 학생1 = new Student();
let 학생2 = new Student();
학생1.sayHi();
학생2.sayHi();
잘 작동됨 !
학생을 뽑을때 name을 다르게 설정해보자
function Student(이름) {
this.name = 이름;
this.age = 15;
this.sayHi = function () {
console.log("안녕하세요" + this.name + "입니다");
};
}
함수에 파라미터를 뚫어준다
let 학생1 = new Student('Park');
let 학생2 = new Student('Lee');
let 학생3 = new Student();
this <<< instance (새로생성되는 object)
'JavaScript' 카테고리의 다른 글
[JS] ES5 ES6 상속기능 사용하기 (create , class) (0) | 2022.05.20 |
---|---|
[JS] prototype (0) | 2022.05.20 |
Arrow function (0) | 2022.05.17 |
this함수 (0) | 2022.05.17 |
[16장] 프로퍼티 어트리뷰트 (0) | 2022.03.08 |