Javascript Object
이번 Posting에서는 javascript의 객체에 대해서 정리할 것이다.
javascript는 객체 기반의 스크립트 언어이며 javascript를 이루고 있는 것은 거의 모두가 객체로 존재한다.
Object
Object에는 프로퍼티와 메소드가 존재한다. 이 두 요소가 객체를 완성하는 실체라고 할 수있는데 프로퍼티에 대해서 상세히 알아보자.
Property
프로퍼티는 객체의 속성을 나타내는 접근 가능한 이름 그리고 활용 가능한 값을 가지는 특별한 형태라고 말할 수 있다. 이 프로퍼티라는 녀석은 특정 객체가 가지고 있는 정보를 품고 있는데, 그 정보에 직접적으로 접근할 수 있도록 해주는 역할을 한다. (예외 Proto)
객체 생성
객체를 생성하는 방법과 속성을 추가하는 방법은 아래와 같다.
만약 값을 할당하지 않는다면 syntax error가 발생한다.
또한 property의 삭제는 undefined나 null을 할당한다고해서 메모리가 해제되는 것이 아니다. 반드시 delete keyword를 사용해야 한다.
Method
Java에서는 함수라는 것이 존재하지 않지만 javascript에서는 함수와 메소드 둘다 존재한다. 둘의 차이점은 무엇일까? 메소드는 객체가 가지고있는 동작이고 이 메소드를 수행하기 위해서는 객체를 통해서 메소드를 호출해야한다. 하지만 함수는 어떤 객체를 통해서 호출하지 않아도 된다. 그 이유는 함수 자체가 그동작을 정의한 "함수 객체"이기 때문에다.
java에서는 메소드는 단지 meta data로 존재할 뿐이며 객체에 속한 동작에 대한 선언이라고 한다. 하지만 javascript에서는 메소드는 각각의 개별 객체로 존재하게 된다. 객체에 속한 meta data를 사용하는 것이 아닌 객체로부터 파생되어 확장된 새로운 객체를 사용하는 것이다.
Object의 구성
javascript는 객체 기반의 스크립트 언어이며 javascript를 이루고 있는 것은 거의 모두가 객체로 존재한다.
Object
Object에는 프로퍼티와 메소드가 존재한다. 이 두 요소가 객체를 완성하는 실체라고 할 수있는데 프로퍼티에 대해서 상세히 알아보자.
Property
프로퍼티는 객체의 속성을 나타내는 접근 가능한 이름 그리고 활용 가능한 값을 가지는 특별한 형태라고 말할 수 있다. 이 프로퍼티라는 녀석은 특정 객체가 가지고 있는 정보를 품고 있는데, 그 정보에 직접적으로 접근할 수 있도록 해주는 역할을 한다. (예외 Proto)
객체 생성
객체를 생성하는 방법과 속성을 추가하는 방법은 아래와 같다.
1 2 | var foo = {}; foo.a = 1; |
만약 값을 할당하지 않는다면 syntax error가 발생한다.
또한 property의 삭제는 undefined나 null을 할당한다고해서 메모리가 해제되는 것이 아니다. 반드시 delete keyword를 사용해야 한다.
Method
Java에서는 함수라는 것이 존재하지 않지만 javascript에서는 함수와 메소드 둘다 존재한다. 둘의 차이점은 무엇일까? 메소드는 객체가 가지고있는 동작이고 이 메소드를 수행하기 위해서는 객체를 통해서 메소드를 호출해야한다. 하지만 함수는 어떤 객체를 통해서 호출하지 않아도 된다. 그 이유는 함수 자체가 그동작을 정의한 "함수 객체"이기 때문에다.
java에서는 메소드는 단지 meta data로 존재할 뿐이며 객체에 속한 동작에 대한 선언이라고 한다. 하지만 javascript에서는 메소드는 각각의 개별 객체로 존재하게 된다. 객체에 속한 meta data를 사용하는 것이 아닌 객체로부터 파생되어 확장된 새로운 객체를 사용하는 것이다.
Object의 구성
- Built-in Object
- Native Object
- Host Object
Built-in Object (자바스크립트 내장객체)
이 객체에는 Global, Object, String, Number, Boolean, Date, Array, Math, RegExp, Error등의 많은 내장 객체들이 존재한다. 이들은 javascript 엔진이 구동되는 시점에서 바로 제공된다. 또한 어디서든 사용이 가능하다.
Native Object (브라우저 내장객체)
이 객체 역시 javascript가 구동되는 시점에서 바로 사용이 가능한 객체들이다. 이 객체들은 javascript 엔진이 구성하는 기본 객체라기 보단 javascript 엔진을 구동하는 녀석들에서 빌드 되는 객체들이다. 예를 들어 브라우저 객체 모델 (BOM), 문서 객체모델(DOM)이 이에 속한다. 이 객체들은 Built-in Object가 생성된 이후에 구성이 되고 Native Object들 역시 내장 객체이다. 굳이 native Object라고 구분하는 이유는 브라우저마다 다른 구성을 하는 경우가 있기 때문이다.
Host Object
사용자가 정의한 객체를 가리킨다.
객체 생성 방식
- constructor
- javascript Object notation