서로 연관된 변수와 함수를 그룹핑한 그릇. 객체 내의 변수를 프로퍼티(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을 붙이면 새로운 객체를 만든 후에 이를 리턴한다.
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와 같이 수정할 수 있다.
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에서는 생성자 내에서 이 객체의 프로퍼티를 정의하고 있다. 이러한 작업을 초기화라고 한다. 이를 통해서 코드의 재사용성이 대폭 높아졌다.