티스토리 뷰


※자바스크립트에서 객체를 생성하는 3가지 방법
 
//-------------------------------------------------------------------
//1.일반적인 변수나 배열을 이용한 객체 생성
//-------------------------------------------------------------------
const students = [];
students.push({이름: "윤인성", 국어: 87, 수학: 98, 영어: 88, 과학: 95 });
students.push({이름: "연하진", 국어: 92, 수학: 98, 영어: 96, 과학: 98 });
students.push({이름: "구지연", 국어: 76, 수학: 96, 영어: 94, 과학: 90 });
students.push({이름: "나선주", 국어: 98, 수학: 92, 영어: 96, 과학: 92 });
students.push({이름: "윤아린", 국어: 95, 수학: 98, 영어: 98, 과학: 98 });
students.push({이름: "윤명월", 국어: 64, 수학: 88, 영어: 92, 과학: 92 });
students.push({이름: "김미화", 국어: 82, 수학: 86, 영어: 98, 과학: 88 });
students.push({이름: "김연화", 국어: 88, 수학: 74, 영어: 78, 과학: 92 });
students.push({이름: "박아현", 국어: 97, 수학: 92, 영어: 88, 과학: 95 });
students.push({이름: "서준서", 국어: 45, 수학: 52, 영어: 72, 과학: 78 });
 
//배열일 경우, 각 요소에 함수를 추가한다.
for(let i in students)
{
    students[i].getSum = function()
    {
        return this.국어 + this.수학 + this.영어 + this.과학;
    };
 
    students[i].getAverage = function()
    {
        return this.getSum() / 4;
    }
}
 
 
 
//-------------------------------------------------------------------
//2. 함수를 이용한 객체 생성
//   겉모습은 함수이고 파라미터로 전달된 매개변수를 이용하여 객체 초기화를 한 뒤
//   return 문을 통해서 그 객체를 리턴한다.
//-------------------------------------------------------------------
function MakeStudent(name, korean, math, english, science)
{
    let willReturn = {
        이름: name,
        국어: korean,
        수학: math,
        영어: english,
        과학: science,
 
        getSum: function() {
            return this.국어 + this.수학 + this.영어 + this.과학;
        },
        getAverage: function() {
            return this.getSum() / 4;
        },
        toString: function() {
            return this.이름 + "  |  " + this.getSum() + "  |  " + this.getAverage();
        }
    };
    return willReturn;
}
 
var students = [];
students.push(MakeStudent("강윤경"98989095));
students.push(MakeStudent("황현아"98928298));
 
 
 
//-------------------------------------------------------------------
//3. 생성자 함수를 사용해서 객체를 생성
//   생성자 함수의 내부의 멤버(속성및 함수)는 반드시 this를 통해서 접근한다.
//   실제 객체를 사용하기 위해서는 new를 사용해서 객체를 생성한다.
//-------------------------------------------------------------------
#1번 prototyp을 사용하지 않는 new를 이용한 객체 생성
function Student(name, korean, math, english, science)
{
    this.이름 = name;
    this.국어 = korean;
    this.수학 = math;
    this.영어 = english;
    this.과학 = science;
 
    this.getSum = function()
    {
        return this.국어 + this.수학 + this.영어 + this.과학;
    };
    this.getAverage = function()
    {
        return this.getSum() / 4;
    };
 
    this.toString = function()
    {
        return "이름    총점    평균\n" + this.이름 + "    " + this.getSum() + "    " + this.getAverage();
    };
}

#2번 prototype과 new를 이용한 객체 생성

prototype이란?
생성자 함수를 사용해 생성된 객체가 공통으로 가지는 공간이며, 우리가 만드는 것이 아닌 함수 안에 자동으로 만들어지는 것이며
모든 함수는 prototype를 갖고 있으며 객체이다.
즉, 함수가 가지고 있는 객체중 arguments는 매개변수 배열 객체, prototype 공용함수 객체 이다.
function Student(name, korean, math, english, science)
{
    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 "이름    총점    평균\n" + this.이름 + "    " + this.getSum() + "    " + this.getAverage();
};

 
let student  = new Student("윤하린"96989298);
cs


'language > javascript' 카테고리의 다른 글

[node.js] 1.대략적인 이해  (0) 2020.03.24
상속의 형태  (0) 2018.12.01
함수 사용에 따른 함수 내의 변수들의 범위  (0) 2018.11.29
Math.random()을 이용한 난수 생성  (0) 2018.11.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
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 28
29 30 31
글 보관함