자바스크립트 객체


자바스크립트의 거의 “모든 것(everything)”이 객체입니다.

  • Booleans는 객체가 될 수 있습니다 (new 키워드와 함께 정의하면)
  • Numbers는 객체가 될 수 있습니다 (new 키워드와 함께 정의하면)
  • Strings는 객체가 될 수 있습니다 (new 키워드와 함께 정의하면)
  • Dates는 항상 객체입니다.
  • Maths는 항상 객체입니다.
  • Regular expressions는 항상 객체입니다.
  • Arrays는 항상 객체입니다.
  • Functions는 항상 객체입니다.
  • Objects는 항상 객체입니다.

primitives를 제외한 모든 자바스크립트 값(values)은 객체입니다.


자바스크립트 Primitives

primitive value는 속성이나 메소드(properties or methods)가 없는 값입니다.

primitive data type은 primitive value의 데이터 유형입니다.

자바스크립트는 primitive data types을 5가지 유형(types)으로 정의하고 있습니다(:

  • string
  • number
  • boolean
  • null
  • undefined

Primitive values는 불변(immutable)입니다 (이것은 하드 코딩되어 있으므로 변경할 수 없습니다).

Value Type Comment
“Hello" string "Hello" is always "Hello"
3.14 number 3.14 is always 3.14
true boolean true is always true
false boolean false is always false
null null (object) null is always null
undefined undefined undefined is always undefined

객체(Objects)는 변수를 포함하는 변수(Variables)입니다

자바스크립트 변수는 하나의 값(single values)을 포함할 수 있습니다:

Example

John Doe

객체도 역시 변수입니다. 그러나 객체는 여러 값을 포함할 수 있습니다.

값은 name : value 쌍입니다 (name과 value는 콜론으로 구분합니다).

Example

John Doe


객체 속성

자바스크립트 객체에서 named values는 속성(properties)이라고 합니다.

Property Value
firstName John
lastName Doe
age 50
eyeColor blue

name value 쌍으로 작성된 객체는 다음과 유사합니다:

  • Associative arrays in PHP
  • Dictionaries in Python
  • Hash tables in C
  • Hash maps in Java
  • Hashes in Ruby and Perl

객체 메소드(Object Methods)

메소드는 객체(objects)에 수행되는 작업(actions)입니다.

객체 속성(Object properties)은 primitive values, 다른 객체(objects) 및 함수(functions)가 될 수 있습니다.

객체 메소드(object method)함수 정의(function definition)를 포함하는 객체 속성입니다.

Property Value
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

다음 장에서 메소드(methods)에 대해 더 배웁니다.


자바스크립트 객체(Object) 생성

자바스크립트로 자신의 객체(objects)를 정의하고 생성할 수 있습니다.

새 객체(objects)를 만드는 방법은 여러가지입니다:

  • 객체 리터럴(object literal)을 사용하여, 하나의 객체(single object)를 정의하고 생성합니다.
  • new 키워드를 사용하여 하나의 객체(single object)를 정의하고 생성합니다.
  • 객체 생성자(object constructor)를 정의하고, 생성된 유형(constructed type)의 객체(objects)를 생성합니다.

Object Literal 사용

이것이 자바스크립트 객체를 생성하는 가장 쉬운 방법입니다.

object literal을 사용하면, 하나의 문(statement)으로 객체를 정의하고 생성할 수
있습니다.

object literal은 중괄호 {} 안에 있는 name:value 쌍(예: age:50)의 목록입니다.

다음 예제는 4개의 속성으로 새 자바스크립트 객체를 생성합니다:

Example

John is 50 years old.

공백(Spaces)과 줄바꿈(line breaks)을 중요하지 않습니다. 객체 정의는 여러 행으로 작성할 수 있습니다:

Example

John is 50 years old.


자바스크립트 new 키워드 사용

다음 예제도 4개의 속성을 가진 새 자바스크립트 객체를 생성합니다:

Example

John is 50 years old.


자바스크립트 객체는 변경할 수(Mutable) 있습니다

객체는 변경할 수(mutable) 있습니다: 이것은 값(value)이 아닌 참조(reference)로 다룹니다.

person 객체라면, 다음 문(statement)은 person의 사본을 생성하지 않습니다:

객체 x는 person의 사본이 아닙니다(not a copy)). 이것은 person 입니다. x와 person은 같은 객체입니다.

x를 변경하면 person도 변경됩니다. x와 person은 같은 객체이기 때문입니다.

Example

John is 10 years old.

출처: JavaScript Objects

답글 남기기