2014년 1월 17일 금요일

javascript prototype

    <script>
        function aa(){}
        aa.prototype = {
            "a1" : "1",
            "a2" : "2"
        };
       
        function bb(){
        this.a1 = "5";
        }

//function 을 선언하면 prototype이 있고 __proto__ 가 있음, __proto__는 변경할수 없는 것이며, 현재 상속 받고 잇는것들에 대해 나타냄
//prototype은 new를 이용해 선언을 했을때 __proto__로 만들어주는 역할을 함

//new를 함으로써 __proto__의 값이 된 것임,  aa.prototype는 단순히 객체임 {},
//new aa() 는 __proto__ = {a1 : 1, a2:2}
//aa.prototype은 = {a1 : 1, a2:2} 만약 new aa() 이런식으로 해서 넣엇다면 {a1 : 1, a2:2, __proto__ :{a1 : 1, a2:2} } 이런식이 될거임
// 왜 이러냐 브랜든 할배가 10일만에 만들어서그럼 ㅋㅋ

//        bb.prototype = new aa();
//        bb.a1 = "4";        //name이 bb인 함수에 대한 값에 a1값이 들어가는것임 , prototype과는 상관없음 c로 새로운 생성자에선 당연히안넘어감
//        bb.prototype.a1 = "3";
//        var c = new bb();



// 프로토타입은 직렬화 된 상속만 가능

//        alert(bb.a2);
//        alert(bb.a1);
    </script>

댓글 없음:

댓글 쓰기