본문 바로가기
[ Developer ]/JavaScript

[JavaScript] 자바스크립트 생성자 함수와 new 연산자

by 김현섭. 2016. 11. 16.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

생성자 함수와 new 연산자

자바스크립트 객체를 생성하기 위해 "new" 연산자와 함께 생성자 함수를 호출할 수도 있다. 다음 예제를 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
    function User(name){
        this.name = name;
        this.id = 123;
        this.sayHello = function(){
            console.log("Hello, I am " + name);
        };
    };
     
    var user1 = new User("Tom");    
    var user2 = new User("Jerry");  
     
    user1.sayHello();   // Hello, I am Tom
    user2.sayHello();   // Hello, I am Jerry
</script>
cs


생성자 함수는 다음과 같은 단계를 거친다.

- 빈 객체를 생성: this = {}
- 그런 다음 생성자 함수가 실행되어 프로퍼티와 메서드가 this 객체에 추가됨
- this 객체를 반환

참고: 어떤 함수가 "new" 연산자와 함께 자바스크립트 객체를 생성하는 데 사용되면 대개 해당 함수의 첫 번째 글자는 대문자로 쓴다.

생성자 함수가 객체를 반환하면 this는 무시된다.

1
2
3
4
5
6
7
8
9
<script type="text/javascript">
    function User(name){
        this.name = name;
        return {name"Jerry"};
    };
     
    var user1 = new User("Tom");    
    console.log(user1.name);        // Jerry
</script>
cs