JavaScript 객체(Objects)


JavaScript 에있는 거의 모든 객체가 될 수 있습니다 : Strings, Functions, Arrays, Dates....

객체는 속성(properties) 및 메서드(methods)를 갖는 단지 데이터입니다.


속성(Properties) and 메서드(Methods)

속성(Properties)은 객체와 관련된들(values) 입니다.

메서드(Methods)는 객체가 수행할 작업들(actions) 입니다.


실제 객체,  속성(property) 과 메서드(method)

실제 세계에서, 자동차(car)는 객체(object)이다.

자동차는 무게와 색 같은 속성(property)과 시동과 멈춤 같은 메서드(method)들을 갖는다.

Object Properties Methods

car.name = Fiat

car.model = 500

car.weight = 850kg

car.color = white

car.start()

car.drive()

car.brake()

car.stop()

모든 자동차는 같은 속성(property)을 가지고 있지만, 속성 값은 자동차 마다 다릅니다.

모든 자동차는 같은 메서드(method)을 가지고 있지만, 그들은 다른 시간에 실행됩니다.


JavaScript 객체:

우리는 이미 JavaScript 변수가 데이타 값의 용기임을 배웠다.

다음 코드는 car 라는 변수에 단순한 값(Fiat)을 할당한다.

var car = "Fiat";
Try it Yourself »

객체 또한 변수다. 하지만 객체는 많은 값들을 담을 수 있다.

다음 코드는 car 라는 변수에 많은 값들(Fiat, 500, white)을 할당한다.

var car = {type:"Fiat", model:"500", color:"white"};
Try it Yourself »

값들은 name:value 쌍으로 쓰여진다.


객체 속성(object property)

(JavaScript 객체에서) name:value 쌍을  속성(property)이라 부른다.

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

객체 메서드(object method)

메서드(method)는 객체에 실행될 수 있는 행동들이다.

메서드(method)는 함수 정의로 속성(property)에 저장된다.

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

객체 선언

JavaScript 객체는 객체 문장으로 선언(생성)한다.

Example

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Try it Yourself »

빈 공백과 불 바꿈은 중요하지 않으며, 객체 선언은 여러 줄로 확장해도 된다:

Example

var person = {
    firstName:"John",
    lastName:"Doe",
    age:50,
    eyeColor:"blue"
};
Try it Yourself »


객체 속성에 접근(Accessing)

객체의 속성에는 두 가지 방법으로 접근할 수 있다.

objectName.propertyName

또는

objectName["propertyName"]

Example1

person.lastName;
Try it Yourself »

Example2

person["lastName"];
Try it Yourself »


객체 메서드에 접근

객체의 메서드는 다음과 같이 접급한다.

objectName.methodName()

Example

name = person.fullName();
Try it Yourself »

만약에 () 없이 fullName 속성에 접근하면, 함수 정의가 반환될 것이다.

Example

name = person.fullName;
Try it Yourself »


String, Number, 와 Boolean 을 객체로 선언하지 마시오!

JavaScript 변수가 키워드 "new"로 선언되면, 변수는 객체로 생성된다:
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
String, Number, Boolean 객체로 선언 하지 마시오, 그러면 실행속도가 느려집니다.

Test Yourself with Exercises !

Exercise 1 »   Exercise 2 »   Exercise 3 »