[javascript] 객체(object) Study note
“혼자 공부하는 자바스크립트” 스터디 모임 정리 노트 입니다. 📚
객체의 기본
-
메소드(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 와 같다.