자바, C++에는 class를 사용해서 객체를 생성할 수 있는데, 자바스크립트는 class라는 개념이 없다.
그대신 생성자를 사용하여 객체를 생성한다.
간단한 예
function Card(suit, rank){
this.suit = suit;
this.rank = rank;
}
var card = new Card('하트','A')
new라는 키워드를 사용해서 card라는 인스턴스를 만들고 있다.
이때, Card는 card의 생성자이며, Card가 가지고 있는 매개변수 suit, rank에 '하트', 'A'가 들어간다.
this.프로퍼티이름에 값을 대입하면 그 이름을 가진 프로퍼티에 값이 할당된 객체가 생성된다. 이때 this는 생성자가 객체를 가리킨다.
생성자의 이름은 대문자로 시작하는 파스칼 표기법을 사용한다.
생성자를 사용하면 다른 객체(인스턴스)를 여러개 만들 수 있다.
function Particle(x, y, xv, yv){
this.x = x;
this.y = y;
this.vx = vx;
this.vy = vy;
this.velocity = Math.sqrt(vx*vx+vy*vy);
}
var p = new Particle(0,0,3,4);
console.log(p); //Particle {x:0 y:0 vx:3, vy:4, velocity:5}
메서드를 가지는 객체를 생성하는 생성자
this.프로퍼티 이름에 참조 함수를 대입하면 메서드를 정의할 수 있다.
function(center, radius){
this.center = center;
this.radius = radius;
this.area = function(){
return Math.PI * this.radius * this.radius
};
}
var p = {x:0, y:0};
var c = new Circle(p, 2.0);
console.log("넓이= "+ c.area()); // 넓이= 12.56637-
이러면 c라는 객체는 {center:{x:0,y:0}, radius:2.0, area:2.0*2.0*PI} 이게 생성된다.
'IT 공부 > JavaScript' 카테고리의 다른 글
[모던 JS] 객체의 기초 - 객체 리터럴 (0) | 2023.08.02 |
---|---|
[모던 JS] 템플릿 리터럴 (0) | 2023.08.02 |
[모던 JS] 심벌(Symbol) (0) | 2023.08.02 |
[Node.js] 파일 읽어 node로 실행하기 - Mac (0) | 2023.07.30 |
Node.js - Mac (0) | 2023.07.30 |