퇴근5분전

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// todo : 프로토 타입 
        var Dog = function()
        {
            
        }
         
        Dog.prototype = {
            name: "도그",
            getAlias: function () { return "꽃개";}
        };
         
        var dog = new Dog();
        alert(dog.name);
        alert(dog.getAlias());

        function Pet( name )
        {
            this._getName = function () { return name; }
        }

        Pet.prototype.getName = function ()
        {
            return this._getName();
        }

        var pet = new Pet("애완");
        alert( pet.getName() );

 

 

prototype 은 object 확장 으로 생각하면 된다.

Dog 에 public으로 name과 getAlias() 멤버를 덧붙여주었다.

 

Pet의 this._getName은 protected member로써 외부에서 접근이 불가능하다.

이는 타언어처럼 객체 내부 또는 상속받은 객체에서 접근이 가능하다.

 생성된 pet._getName은 직접 호출이 불가능하다.

그래서 Pet.prototype.getName 의 public member에서 호출하고 있다.