Notice
Recent Posts
Recent Comments
Link
-
javascript::객체 본문
객체
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