JavaScript

[JavaScript] Closure(클로저) 예제

SangRok Jung 2022. 4. 18. 21:55
반응형

어가기 앞서

Closure의 이해

https://cruella-de-vil.tistory.com/47

 

[JavaScript] Scope(스코프), Closure(클로저), var

Scope (스코프) 개념 변수가 유효성을 가지는 범위. 스코프는 기본적으로 프로세스 메모리 맵의 구조에 의존적. 선언된 위치에 따라 스코프가 결정된다. 같은 이름으로 변수가 선언된 경우 스코프

cruella-de-vil.tistory.com

 

 

예제

클로저를 이용하여 id, 이름, 국영수 성적을 생성하는 함수를 구현하려 한다.

  • 학번, 이름, 국영수 성적의 getter/setter를 구현하시오.
  • 성적의 평균을 구하는 함수를 구현하시오. (단 평균은 소수점 2자리)

 

 

 

 

 

<body>
    <script>

        function makeStudent(id, name, score)
        {
            return {
            
                getId()
                {
                    return id;
                },
                setId(_id)
                {
                    id = _id;
                },
                getName()
                {
                    return name;
                },
                setName(_name)
                {
                    name = _name;
                },
                getScore()
                {
                    return score;
                },
                setScore(_score)
                {
                    score = _score;
                },
                getAverage() 
                { 
                    let newScore = 0;

                    for (let i = 0; i < score.length; i++)
                    {
                        newScore = newScore + score[i];
                    }
                    return (newScore/score.length).toFixed(2);

                }
            }
        }
        const stu1 = makeStudent('hgd', '홍길동', [67, 87, 94]);
        const avg = stu1.getAverage();

        console.log(avg)
        //82.67
    </script>
</body>

 

 

 

 

 

 

 

반응형

'JavaScript' 카테고리의 다른 글

[JavaScript] new.target  (0) 2022.04.19
[JavaScript] Prototype  (0) 2022.04.19
[JavaScript] 객체지향, Constructor(생성자), new  (0) 2022.04.18
[JavaScript] apply()  (0) 2022.04.18
[JavaScript] 소숫점 자리수 정하기 toFixed()  (0) 2022.04.18