“혼자 공부하는 자바스크립트” 스터디 모임 정리 노트 입니다. 📚

객체의 기본

  • 메소드(method) : 객체의 속성 중 함수 자료형을 말한다.

  • this 객체가 스스로를 가리킬때 사용한다.

    let obj = {
        name: 'roses'
        state: 'rolling'
        get_state: function () {
    		let state = 'studying'
    		return this.state
        }
    }
      
    // 출력: rolling → get_state 함수에서 사용된 'this'는 obj 객체를 의미한다.
    

    단, 화살표 함수에서의 this는 상황에 따라 다른 객체를 가리킨다.

객체의 속성과 메소드 사용하기

  • 객체 자료형 : 속성과 메소드를 가질 수 있는 모든 것 ※ 기본 자료형은 속성과 메소드를 가질 수 없으나, 자료형.prototype 이라는 객체로 “일시적 승급”하는 기능이 있어 해당 자료형 객체의 속성과 메소드를 사용할 수 있다.

  • 프로로타입으로 메소드 추가하기
    자료형.prototype.속성 = 속성값;
    자료형.prototype.메소드이름 = function () {}
    

    위와 같은 방식으로 기존 자료형 객체에 속성 또는 메소드를 추가할 수 있다.

    Number.prototype.won = function () {
        return this.valueOf()+''
    }
      
    let price = 10000;
    console.log(price.won())			// 출력값 : 10000원
    
  • 기본 자료형(Number, String, Boolean)을 객체로 선언하기. let 객체이름 = new 객체 자료형 이름 ()

    let numberObj = new Number()
    

객체와 배열 고급

  • 속성 존재 여부 확인

    객체에 없는 속성을 호출할 경우 undefined 값을 반환받는다. 이 점과   연산자를 사용하여 아래와 같이 default 값을 설정할 수 있다.
    let obj = { name: 'name' }
    obj.author = obj.author || '저자 미상'		// author 라는 속성이 없을 경우 속성을 추가하고 '저자 미상'을 dafult 값으로 사용한다.
    
  • 다중 할당

    배열/객체를 여러개의 변수에 대입할 수 있다.

    let arr = [1, 2, 3]
    let [a, b, c] = arr			// let a = arr[0], let b = arr[1], let c = arr[2] 와 같다.
    
    let obj = { name: 'name', age: 'age' }
    let { name, age } = obj			// let name = obj.name, let age = obj.age 와 같다.
    let { a=name, b=age } = obj		// let a = obj.name, let b - obj.age 와 같다.