키모87 2022. 2. 5. 02:26

객채 : '실제로 존재하는 사물을 의미'하고 이름과 값으로 구성된 속성을 가진 데이터 타입

  • 객체 내부에 있는 값을 속성(property)라고 합니다. 모든 형태의 자료형을 가질 수 있습니다.
  • 객체는 중괄호 {..}로 생성하며 속성을 쉼표(,)로 연결해서 입력한다.
키 : 값
<script>
    const product = {
    제품명 : '7D 건조 망고',
    유형 : '당절임',
    성분 : '망고, 설탕 , 메타중아황산나트륨 , 차차황색소',
    원산지 : '필리핀'    
    }
<script>

객체의 요소접근은 아래와 같이 사용할 수 있다.

product['제품명'] -> '7D 건조 망고'
product.제품명    -> '7D 건조 망고'

객체의 속성 중 함수 자료형인 속성을  메소드(method)라고 부릅니다.

<script>
const pet = {
    name : '구름',
    eat : function(food) {//메소드}
}

</script>

 

메소드 내부에서 this 키워드를 사용하기

메소드 내에서 자기 자신의 가진 속성을 출력하고 싶을 때는 자신이 가진 속성임을 분명하게 표시해야합니다. 자기 자신이 가진 속성이라는 것을 표시할때는 this 키워드를 사용합니다.

   <script>
        const pet = {
            name : '구름',
            eat : function(food){
                alert(this.name + '은/는 '+food+'을/를 먹습니다.')
            }
        }

        pet.eat('밥')
    </script>

 

동적으로 객체 속성 추가 및 제거

   student.이름 = '고요한',
   student.언어 = '한국어',

   delete student.언어

   console.log(JSON.stringify(student,null,2))

 

메소드 선언하기

<script>
    const pet={
        name : '영수',
        eat (lang) {
         alert(this.name+ '는 '+ lang + 를 배우고 있어요.')   
        }
    }

    pet.eat('javascript')
</script>

 

화살표 함수를 사용한 메소드

<script>
    const test = {
        a: function(){
            console.log(this)
        },
        b: () =>
        {
            console.log(this)
        }
    }
    test.a()
    test.b()
</script>

익명함수와 화살표 함수는 내부에서 this 키워드를 사용할 때 의미가 달라지므로 화살표 함수를 메소드로 사용하지 않습니다.