객체지향_1)생성자와 new

양갱장군·2020년 8월 28일
2

객체란?


서로 연관된 변수와 함수를 그룹핑한 그릇. 객체 내의 변수를 프로퍼티(property)라고 부르며, 객체 내의 함수를 메소드(method)라고 한다.

📍 객체를 만드는 3가지 방법

1) var 변수 ={'key1':value1, 'key2':value2}

2) var 변수 = {}
변수['key1'] = value1;
변수['key2'] = value2;

3) var 변수 = new Object();
변수['key1'] = value1;
변수['key2'] = value2;
→ 이게 생성자를 이용한 객체 만드는 법

생성자


생성자(constructor)는 객체를 만드는 역할을 하는 함수다. 자바스크립트에서 함수는 재사용 가능한 로직의 묶음이 아니라 객체를 만드는 창조자라고 할 수 있다. 함수를 호출할 때 new을 붙이면 새로운 객체를 만든 후에 이를 리턴한다.

예문1

function Person() {}
var p1 = new Person();
p1.name = 'jjburi'
p1.introduce = function() {
	returen 'my name is '+ this.name;
    }
document.write(p1.introduce() + "<br/>");
var p2 = new Person();
p2.name = 'monaca'
p2.introduce = function() {
	returen 'my name is '+ this.name;
    }
document.write(p2.introduce() + "<br/>");

위 예문1은 새로운 객체를 변수p에 담았다. 이 경우 여러 사람을 위한 객체를 만든다면 사람 수 만큼 객체생성을 반복해야 할 것이다. 이 코드는 아래 예문2와 같이 수정할 수 있다.

예문2

function Person(name) {
	this.name = name;
    this.introduce = function() {
    returen 'my name is '+ this.name;}
    }
var p1 = new Person('jjubri');
document.write(p1.introduce()+'<br/>');
var p2 = new Person('monaca');
document.write(p2.introduce());

위 예문2에서는 생성자 내에서 이 객체의 프로퍼티를 정의하고 있다. 이러한 작업을 초기화라고 한다. 이를 통해서 코드의 재사용성이 대폭 높아졌다.

0개의 댓글