Fast Blinking Hello Kitty

JAVASCRIPT

객체 복습하기(메서드와 this)

코른이되고싶은코린이 2023. 3. 5. 21:27

728x90

객체(object)

💡프로그래밍에서 객체는 데이터를 저장하고 처리하는 기본 단위이다. 실생활에서 사물을 정의하는 방법과 비슷하다. 예를들어 한 자동차를 정의하기 위해 제조사나 모델명, 색상, 배기량등의 자료와 같다.

 

키와값

배열(array)은 index 순서가 담긴 값을 자동으로 부여받아 저장된 데이터들이 순서를 가진다면

객체(object)는 순서없이 문자를 사용하여 key(키)와 value(값)이 저장된다. 객체를 만들 때는 ({ }) 중괄호를 사용하고, 중괄호 사이에 ' 키:값 '형식으로 필요한 프로퍼티를 나열한다. 

 

const obj = {key : value, key : value}

 

배열안에 객체

{
    const obj = [
                {a:77, b:66},
                {c:"xyxy"}
    ];

    console.log(obj[0].a);
    console.log(obj[0].b);
    console.log(obj[1].c);
}

▶ obj[0].a 값은 배열 0번째 순서인 {a:77, b:66}의 a값 77을 의미한다. 

    결과값은 77, 66, xyxy가 된다.

 

객체 안에 배열

{
    const obj = {
        a: 52,
        b: [30, 10],
        c: {x: 60, y: 80},               
    };

    console.log(obj.b[0]);              
    console.log(obj.b[1]);
    console.log(obj.c.x);
}

▶ obj.b[0] 값은 객체 b의 0번째 순서인 30을 의미한다. 

    결과값은 30, 10, 60이 된다.

 

메서드와 this

메서드는 객체의 프로퍼티 중 객체의 동작을 지정하는 함수인데, 함수 이름에 해당하는 메서드 이름을 먼저 지정한 후 function예약어를 사용해 함수를 정의한다.

 

메서드에 따라서는 객체 안에 있는 프로퍼티값을 사용해야 할 경우도 있는데, 이때 this라는 예약어를 사용한다.

 

예를들어 book2를 정의하는 소스에서 book2객체에 있는 finish()는 책을 다 읽었는지의 여부를 표시하는 메서드 이다. 이 메서드 안에서 book2 객체의 done프로퍼티를 사용한다면 이렇게 작성할 수 있다.

let book2 = {
	title : "javascript",
    pages : 300,
    author : "코린이",
    done : false,
    finish : function() {
    	book2. done === false ?  console. log("읽는 중") : console.log("완독");
    }
}

book2.finish()   //"읽는중"
let book2 = {
	title : "javascript",
    pages : 300,
    author : "코린이",
    done : false,
    finish : function() {
    	this. done === false ?  console. log("읽는 중") : console.log("완독");
    }
}

book2.finish()   //"읽는중"

▶위의 소스에서 book2의 done값을 조회할 때 book2라는 객체 이름 대신 this라는 예약어를 사용할 수 있다. 객체의 메서드에서 this는 현재객체를 가리킨다. 

 

▶ '===' 은 엄격하게 같음을 비교할 때 사용하는 연산자이다. a === b라고 할때, 값과 값의 종류가 모두 같은지 비교해서, 같으면 true, 다르면 false라고 한다.

 

▶'?' 태그는 조건부 삼항 연산자 구문으로  조건 ? A : B; 에서 조건이 true면 A가 반환되고 조건이 false면 B가 반환된다.