본문 바로가기

Javascript/기초공부

[Javascript: 생성자와 new] 객체 생성

객체

자바스크립트는 함수형 언어이며 prototype-based language이다.

var person = {}
person.name = 'jisun'; // property(속성)
person.introduce = function() { // method(메소드)
    return 'My name is '+this.name;
}
document.write(person.introduce());

객체를 정의할 때 값을 한번에 셋팅하도록 바꿔보자.

var person = {
    'name': 'jisun',
    'introduce': function() {
        return 'My name is '+this.name;
    }
}

그런데 만약 여러 사람의 정보를 담으려면 이렇게 중복이 발생한다.

var person1 = {
    'name': 'jisun',
    'introduce': function() {
        return 'My name is '+this.name;
    }
}

var person2 = {
    'name': 'jihye',
    'introduce': function() {
        return 'My name is '+this.name;
    }
}

이를 해결하기 위해 생성자와 new를 사용한다.

 

생성자와 new

function Person(name) {
    this.name = name;
    this.introduce = function() {
        return 'My name is '+this.name;
    }
}
var p1 = new Person('jisun'); // 객체 생성자
var p2 = new Person('jihye');

document.write(p1.introduce()+'<br />');
document.write(p2.introduce());

new 키워드와 함수를 통해 즉, 생성자를 통해 객체를 만들고 코드의 재사용성을 높이게 되었다.

* 자바에서 생성자는 클래스 안에 속해있으나, 자바스크립트에서 생성자는 어디에도 속해있지 않다.