GOhACK/웹

[JavaScript jQuery] 7장 생성자 함수

LinZBe4hia 2016. 12. 28. 12:52

7.2 프로토타입


예제 오류> 무엇을 잘못했지?

<script>
    function Student() {
        this.이름 = name;
        this.국어 = korean;
        this.수학 = math;
        this.영어 = english;
        this.과학 = science;
    }

    Student.prototype.getSum = function() {
        return this.국어 + this.수학 + this.영어 + this.과학;
    };
    Student.prototype.getAverage = function() {
        return this.getSum() /4;
    }
    Student.prototype.toString = function() {
        return this.이름 +'\t' + this.getSum() + '\t' + this.getAverage();
    };

    // create student arrays
    var students = [];
    students.push(new Student('윤하린', 96, 98, 92, 98));
    students.push(new Student('윤인아', 96, 96, 85, 76));

    // display
    var output = '이름\t총첨\t평균\n';
    for(var i in students) {
        output += students[i].toString() + '\n';
    }

    alert(output);

</script>


7.3 new 키워드


 - 생성자 함수를 생성할 때 new 키워드를 사용하는 경우

<script>
    // create constructor function
    function Constructor (value) {
        this.value = value;
    }

    // declare a variable
    var constructor = new Constructor('Hello');

    // display
    alert(constructor.value);
</script>



- new 키워드를 사용하지 않을 때

<script>
    // create constructor function
    function Constructor (value) {
        this.value = value;
    }

    // declare a variable
    var constructor = Constructor('Hello');

    // display
    alert(value);
</script>


출력은 모드 'Hello' 의 경고창으로 나온다.


this 키워드: window 객체를 가리킴

new 키워드: 객체를 위한 공간을 만들고 this 키워드가 해당 공간을 의미.


7.4 캡슐화

캡슐화: 잘못 사용될 수 있는 객체의 특정 부분을 사용자가 사용할 수 없게끔 막는 기술



7.5 상속

코드 7-17 응용


Square.prototype.constructor = Square; 

이 코드를 적음으로써 Square의 생성자 함수가 Square을 가리키도록 합니다.

 코드 7-17 응용한 부분은 출력해보면 생성자 함수 Rectangle을 가리킵니다.

 (참고 블로그:http://superjang.com/archives/2535)