관리 메뉴

진취적 삶

10 객체 리터럴 본문

개발 도서/자바스크립트 deepdive

10 객체 리터럴

hp0724 2023. 7. 11. 12:44

10.1 객체란 ?

원시 값을 제외한 나머지 값은 모두 객체다

원시 값은 변경 불가능한 값이지만 객체는 변경가능한 값이다 .

프로퍼티는 키와 값으로 구성된다.

var person = {
	name :'lee',
	age :20 
} ; 

// name : property key 
// age : property key 
//'lee' : property value  
//20 : property value 
// name :'lee'  => property 

프로퍼티의 값이 함수일경우 일반 함수와 구분하기 위해서 method라 부른다.

var counter = {
	num = 0; 
	increase :function () {
		this.num ++
}
};
  • 프로퍼티 : 객체의 상태를 나타내는 값
  • 메소드 : 프로퍼티를 참조하고 조작할수 있는 동작

10.2 객체 리터럴에 의한 객체 생성

  • 인스턴스 : 클래스에 의해 생성되어 메모리에 저장된 실체를 말한다.클래스는 인스턴스를 생성하기 위한 템플릿 개념
  • 객체 지향에서의 객체는 클래스와 인스턴스를 포함한 개념

js 는 프로토타입 기반 객체지향 언어 로서 클래스 기반 객체지향 언어와는 달리 지원한다.

  • 객체 리터럴
  • Object 생성자 함수
  • 생성자 함수
  • Object.create 메서드
  • 클래스

10.3 프로퍼티

ver person  = {
	name :'lee'.
	age :20 
}

식별자 네이미징 규칙을 준수하는 프로퍼티 키를 사용하자

var foo = {
  0: 1,
  1: 2,
  2: 3,
};
console.log(foo); //{ '0': 1, '1': 2, '2': 3 }

프로퍼티 키에 문자열이나 심벌 값 외의 값을 사용하면 암묵적 타입 변화을 통해 문자열이 된다.

10.4 메서드

프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해 메서드라 부른다.

var circle = {
  radius: 5,

  getDiameter: function () {
    return 2 * this.radius;
  },
};

console.log(circle.getDiameter());

10.5 프로퍼티 접근

  • 마침표 프로퍼티 접근 연산자
  • 대괄호 프로퍼티 접근 연산자

대괄호 프로퍼티 접근의 경우 따옴표로 감싸줘야한다.

var person = {
  name: "lee",
};
console.log(person.name);

console.log(person["name"]);

10.8 프로퍼티 삭제

delete 연산자는 객체의 프로퍼티를 삭제한다.

var person = {
  name: "suha",
};

person.age = 20;

console.log(person); // name: 'suha', age: 20 }

delete person.age;

console.log(person); //{ name: 'suha' }

10.9 ES6에서 추가된 개체 리터럴의 확장 기능

10.9.1 프로퍼티 축약 표현

프로퍼티 값으로 변수를 사용하는 경우 변수 이름과 프로퍼티 키가 동일한 이름의 경우 생략 가능

let x = 1,
  y = 2;
const obj = { x, y };
console.log(obj);

10.9.2 계산된 프로퍼티 이름

프로퍼티 키를 동적으로 생성 단 프로퍼티 키를 사용할 표현식의 대괄호로 묶어야 한다.

var prefix = "prop";
var i = 0;

const obj = {
  [`${prefix}-${++i}`]: i,
  [`${prefix}-${++i}`]: i,
  [`${prefix}-${++i}`]: i,
};

console.log(obj);

10.9.3 메서드 축약 표현

const obj = {
  name: "suha",
  sayHi() {
    console.log("hello " + this.name);
  },
};

obj.sayHi();

'개발 도서 > 자바스크립트 deepdive' 카테고리의 다른 글

08 제어문  (0) 2023.07.11
09 타입 변환과 단축 평가  (0) 2023.07.11
02 자바스크립트란?  (0) 2023.07.10
03 자바스크립트 개발 환경과 실행 방법  (0) 2023.07.10
04 변수  (0) 2023.07.10