-

javascript::객체 본문

언어/javascript

javascript::객체

lingi04 2018. 1. 3. 00:01

객체

javascript에서 객체는 단순히 '이름(key):값(value)' 형태의 프로퍼티들을 저장하는 컨테이너이다.

컴퓨터과학 분야에서 Hash라는 자료구조와 상당히 유사하다.

자바스크립트에서 기본 타입은 하나의 값만을 가지는 데 비해, 참조 타입인 객체는 여러 개의 프로퍼티들을 포함할 수 있다.

이 프로퍼티들은 기본 타입의 값을 포함하거나, 다른 객체를 가리킬 수도 있다.

함수도 객체의 프로퍼티일 수 있다. 이러한 프로퍼티를 메서드라 부른다.



* javascript에서의 객체의 의미는 생성 방법이나 상속 방식 등에서 c++이나 java와같은 기존 객체지향 언어에서의 객체 개념과는 약간 다르다.

- 자바 : 

클래스를 정의하고, 클래스의 인스턴스를 생성하는 과정에서 객체가 만들어진다.

- 자바스크립트 : 

클래스라는 개념이 없고, 객체 리터럴 이나 생성자 함수 등 별도의 생성 방식이 존재한다.



자바스크립트에서 객체를 생성하는 방법

1. Object() 객체 생성자 함수 이용

2. 객체 리터럴 이용

3. 생성자 함수 이용.



1. Object() 객체 생성자 함수 이용

- 객체를 생성할 때, 내장 Object() 생성자 함수를 제공한다.

1
2
3
4
5
6
7
8
9
10
// Object()를 이용해서 foo 빈 객체 생성
var foo = new Oject();
 
// foo 객체 프로퍼티 생성
foo.name = 'foo'
foo.age = 30;
foo.gender - 'male'
 
console.log(typeof foo); // (출력값) object
console.log(foo)         // (출력값) {name: 'foo', age: 30, gender: 'male'}
cs

2. 객체 리터럴 방식 이용

- 리터럴?

표기법이라고 생각하면 된다.

객체 리터럴 => 객체를 생성하는 표기법.

1
2
3
4
5
6
7
8
9
// 객체 리터럴 방식으로 foo 객체 생성
var foo = {
    name'foo',
    age: 30,
    gender: 'male'
};
 
console.log(typeof foo);    //(출력값) object
console.log(foo);           //(출력값) {name: 'foo', age: '30', gender: 'male'}
cs


3. 생성자 함수 이용

** 설명 추가




* 객체의 프로퍼티 접근하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 객체 리터럴 방식을 통한 foo 객체 생성
var foo = {
    name'foo',
    major : 'computer science'
};
 
//객체 프로퍼티 읽기
console.log(foo.name);            //(출력값) foo
console.log(foo['name']);        //(출력값) foo
console.log(foo.nickname);        //(출력값) undefined
 
//객체 프로퍼티 갱신
foo.major = 'electronics engineering';
console.log(foo.major);            //(출력값) electronics engineering
console.log(foo['major']);        //(출력값) electronics engineering
foo['major'= 'Mechanical engineering';
console.log(foo.major);            //(출력값) Mechanical engineering
console.log(foo['major']);        //(출력값) Mechanical engineering
 
//객체 프로퍼티 동적 생성
foo.age = 30;
console.log(foo.age);    //(출력값) 30
 
//ㅐ괄호 표기법만을 사용해야 할 경우
foo['full-name'= 'foo bar';    
console.log(foo['full-name']);    //(출력값) foo bar
console.log(foo.full-name);        //(출력값) NaN
console.log(foo.full);            //(출력값) undefined
console.log(name);                //(출력값) undefined
 
cs





'언어 > javascript' 카테고리의 다른 글

javascript:: ==(동등)연산자와 ===(일치) 연산자  (0) 2018.01.04
javascript::유사배열객체  (0) 2018.01.04
javascript::배열  (0) 2018.01.04
javascript :: prototype  (0) 2018.01.02
javascript의 핵심 개념  (0) 2017.12.26
Comments