Link Search Menu Expand Document

JavaScript Objects Basic

Table of contents

  1. Objects Basic
    1. What is Object?
    2. All data types can be Object
    3. JavaScript Objects are Mutable
    4. Similar with Object Properties

Objects Basic

What is Object?

자바스크립트의 객체는 키(key)과 값(value)으로 구성된 데이터를 의미하는 프로퍼티(Property)와 데이터를 참조하고 조작할 수 있는 동작(behavior)을 의미하는 메소드(method)로 구성된 집합

▸ 자바스크립트는 객체(object) 기반의 스크립트 언어이며 자바스크립트를 이루고 있는 거의 “모든 것”이 객체 (원시 타입(Primitives)을 제외한 나머지 값들(함수, 배열, 정규표현식 등)은 모두 객체)

자바스크립트의 최상위 부모

▸ 객체는 데이터(프로퍼티)와 그 데이터에 관련되는 동작(메소드)을 모두 포함할 수 있기 때문에 데이터와 동작을 하나의 단위로 구조화할 수 있어 유용

▸ 프로퍼티의 값으로 자바스크립트에서 사용할 수 있는 모든 값을 사용할 수 있음

▸ 자바스크립트의 함수는 일급 객체이므로 값으로 취급할 수 있음

▸ 프로퍼티 값으로 함수를 사용할 수도 있으며 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메소드라 부름

▸ 자바스크립트의 객체는 객체지향의 상속을 구현하기 위해 “프로토타입(prototype)”이라고 불리는 객체의 프로퍼티와 메소드를 상속받을 수 있음(프로토타입은 타 언어와 구별되는 중요한 개념)

▸ 객체는 많은 값을 담을 수 있음, 속성이나 메소드의 컨테이너라고 생각하면 됨

더 알아보기

All data types can be Object

JavaScript에서 거의 모든 것은 객체

▸ 불린값은 객체 일 수 있음 (new키워드로 정의 된 경우)

▸ 숫자는 객체가 될 수 있음 (new키워드로 정의 된 경우)

▸ 문자열은 객체가 될 수 있음 (new키워드로 정의 된 경우)

▸ 날짜는 항상 객체

▸ 수학은 항상 객체

▸ 정규 표현식은 항상 객체

▸ 배열은 항상 객체

▸ 함수는 항상 객체

▸ 객체는 항상 객체

primitive를 제외한 모든 JavaScript 값은 객체

Do Not Declare Strings, Numbers, and Booleans as Objects!

When a JavaScript variable is declared with the keyword new, the variable is created as an object

this code slow down your execution speed

var x = new String();        // Declares x as a String object
var y = new Number();        // Declares y as a Number object
var z = new Boolean();       // Declares z as a Boolean object

JavaScript Objects are Mutable

객체는 변경 가능하며, 사본을 생성하지 않고 그 자체가 됨!!

예제

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

var x = person;
x.age = 10;           // This will change both x.age and person.age

//만약 person이 객체라면, x는 person과 같은 객체가 됨(사본이 아님!)
//x와 person은 동일한 객체이므로 x를 변경하면 사람도 변경된다

Similar with Object Properties

이름 값 쌍으로 작성된 객체는 다음과 유사함

  • Associative arrays in PHP

  • Dictionaries in Python

  • Hash tables in C

  • Hash maps in Java

  • Hashes in Ruby and Perl


Table of contents


이 웹사이트는 jekyll로 제작되었습니다. Patrick Marsceill, Distributed by an MIT license.