본문 바로가기

IT 공부/JavaScript

[모던 JS] 객체의 기초 2. 생성자

자바, 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' 카테고리의 다른 글