자바스크립트의 데이터 타입에 대해 알아보자
- 숫자 : 정수/실수 구분 없이 실수로만 표기함, 너무 크거나 작으면 e표기법(10.232+121e 뭐시기 이런식?)으로 사용 가능
- 문자열 : 큰따옴표나 작은따옴표로 둘러싸인 문자의 집합(숫자도 이렇게 쓰면 문자열임)
- Boolean : 참/거짓을 표현하는 타입
- Symbol : 유일하고 변경할 수 없게 한 타입으로 식별자로 사용 가능
- undefined – 아예 데이터 타입을 처음부터 정하지 않음
- null – object 타입의 값이 정해지지 않은 것
- object – property와 메소드를 같은 이름으로 묶어놓은 집합체로 자바스크립트의 기본 타입
JavaScript의 객체(object)는 기본 타입으로 이름과 값으로 구성된 프로퍼티의 정렬되지 않은 집합이다. 이때 프로퍼티의 값이 함수가 올 경우 메소드라고 한다.
자바스크립트에서 객체를 생성하기
- 리터럴 표기
var obj = {
property1 : 1
property2 : 2
};
이렇게 생성되었을 경우 obj.property1 이런식으로 사용 가능
2. 생성자를 이용
위의 소스를 선언한 이후 var obx = new obj(); 이렇게 생성자를 만들어서 obx.property1 이런식으로 사용 가능
3. Object.create : 지정된 프로토타입 객체와 프로퍼티를 가지고 새로운 객체를 생성
자바스크립트의 상속은 클래스 기반이 아닌 프로토타입 기반이다.
상속의 장점 : 새로운 프로그램 요구시 기존 클래스를 수정하여 재사용 할 수 있고 클래스간 종속관계가 형성되어 관계의 조직화를 이끌어낸다.
자바스크립트에서는 현재 존재하는 객체를 프로토타입으로 사용하여 해당 객체를 복재하여 재사용하는 것이 상속의 개념이다.
Prototype(프로토타입) : 하나 이상의 객체에서 상속을 받을 때 정보를 제공해주는 객체다.
* 자바스크립트에서는 모든 오브텍트가 프로토타입 체인이 적용되어 기본으로 상속받는 프로토타입 외에도 Object.prototype를 상속 받는다.
프로토타입을 생성하기 이해선 객체 생성자 함수를 작성해야 한다.
(Code)
function Dog(color,name,age){
this.color = color
this.name = name
this age = age
};
var myDog = new Dog(“white”, “Maru”, “2”); //Dog라는 프로토타입을 갖는 객체인 myDog가 생생된 것이다.
var friendDog = new Dog(“black”, “Darae”, “1”); //Dog라는 프로토타입을 갖는 객체인 friendDog가 생생된 것이다.
이 프로퍼티들은 객체명.프로퍼티명 식으로 접근할 수 있다. myDog.color 라던지 friendDog.age 라던지.
- 생성된 객체에 프로퍼티 및 메소드를 추가할 수 있다. 이때는 이미 생성된 객체에만 적용되므로 이후 생성된 객체엔 적용되지 않는다.
- 프로토타입에도 프로퍼티 및 메소드를 추가할 수 있다. 이때 생성자 함수에 직접 추가해야 이후 생성되는 모든 객체에도 적용할 수 있다.
- 프로토타입 프로퍼티를 사용시 현재 존재하는 프로토타입에 새로운 프로퍼티나 메소드를 손쉽게 추가할 수 있다.