JavaScript/JavaScript 기초

[Javascript ES6] 기초 문법 <JS의 상속> 9. prototype

찰리-누나 2022. 12. 20.

 

 

 

prototype

 

 

prototype은 유전자, 즉 '원형'을 뜻한다. prototype은 constructor 함수에 생성된다. 따라서 obj를 복제하기 위해 만든 constructor 함수 속 프로토타입에 변수를 만들어 값을 할당해줄 수 있다. prototype은 js가 해당 객체에 기본적으로 제공해주는 함수 등을 가지고 있다. (toLocalString, toString..등)

<script>
   
    
    function makeObj(a,b) {
        // this는 새로 생성되는 Object를 뜻한다.
        // 즉, 새로 생성되는 Obj의 name과 age에 다음의 값을 할당하라는 뜻
        this.name = a;
        this.age = b;
        this.sayHi = function() {
            console.log(this.name + ' 학생이 Hi함수를 만들었습니다.')
        }
    }

    makeObj.prototype.gender = 'girl';


    let obj1 = new makeObj('chali',24)
    console.log(obj1)
    console.log('obj1.gender',obj1.gender)



</script>

prototype.gender에 값이 할당되었다.

 

만일 부모의 prototype를 검사해보고 싶으면 __proto__를 사용한다.

프로토타입을 알려준다.

 

__proto__를 이용해, 프로토타입을 강제로 등록해줄 수 있다. 

<script>  

    let father = { 성 : 'kim'}
    let children = {}

    children.__proto__ = father
    console.log(children)

</script>

강제로 할당된 prototype.

댓글