Eveningstar

[객체] 생성자, 내장객체 본문

Javascript

[객체] 생성자, 내장객체

두루루루루 2018. 12. 27. 00:30

객체를 생성자로 생성하는 방법


- 생성자를 사용하면 이름이 같은 메서드와 프로퍼티를 가진 객체 여러개를 효율적으로 생성가능

- 자바스크립트에는 클래스가 없는 대신 생성자라고 하는 함수로 객체를 생성


* new 연산자 사용


function Card(suit, rank) {

this.suit = suit;

this.rank - rank;

}


var card = new Card("하트", "A");


Card 생성자로 생성한 객체를 Card 객체라고 부름



- 생성자 이름은 생성자임을 알리기위해 첫글자를 대문자로 쓴다.

- 생성자 안에서 this.프로퍼티 이름에 값을 대입하면 그 이름을 가진 프로퍼티에 값이 할당된 객체가 생성됨. 이때 this는 생성자가 생성하는 객체를 가리킴

- 생성자와 new 연산자로 생성한 객체를 그 생성자의 인스턴스라고 부름


생성자의 역할

- 생성자는 객체를 생성하고 초기화하는 역할을 함.

- 생성자를 사용하면 이름은 같지만 프로퍼티 값이 다른 객체(인스턴스) 여러 개를 생성할 수 있음.


예)

var card1 = new Card("하트", "A");

var card2 = new Card("하트", "K");

var card3 = new Card("하트", "2");


- 생성자를 이용하여 객체를 생성할 떄 초기화 작업을 병행할 수 있다.


function Particle( x,y,vx,vy) {

this.x = x;

this.y = y;

this.vx = vx;

this.vy = vy;

this.velocity = Math.sq (vx*vx + vy*vy);

}


-> 속도 velocity를 프로퍼티에 추가함


*메서드를 가진 객체를 생성하는 생성자

this.프로퍼티 이름에 함수의 참조를 대입하면 메서드 정의가 가능하며, 메서드 함수 안에 있는 this는 생성될 인스턴스를 가리킵니다.


function Circle(center, radius) {

this.center = center;

this.radius = radius;

this.area - function() {

return Math.PI * this.radius * this.radius;

};

}



var p = {x :0, y:0};

var c = new Circle(p, 2.0);

console.log("넓이 =" + c.area()); // area 메서드를 꺼내 쓸수있음



* 내장객체

- 빌트인 오브젝트


전역객체, JSON, Math, Reflect


1) ES5 내장 생성자


Object, String, Number, Boolean, Array, Date, Function, RegExp, Error, EvalError, InternalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError


2) ES6 추가 내장 생성자


Symbol, Int8Array8, Uint8Array8, Int16Array16, Uint16Array16, Int32Array32, Uint32Array32, Float32Array32, Float64Array64, ArrayBuffer, DataView, Promise, Generator, GeneratorFunction, Proxy, Map, Set, WeakMap, WeakSet



3) Date 생성자

- Date 생성자는 날짜와 시간을 표현하는 객체를 생성


var now = new Date();


Date 객체는 계산식 안에서 밀리초 단위 정수로 값의 타입이 바뀜 => 이를 이용해 프로그램 실행에 걸리는 시간을 밀리초 단위로 구할수 있음


var start = new Date();

/* 실행 시간을 측정할 코드를 작성하는 위치 */


var end = new Date();

var elapsed = end - start;//프로그램 실행에 걸리는 시간(밀리초 단위) 



날짜와 시간과 관계된 date 메서드


var now = new Date();

now.getFullYear();

now.getMonth(); //1월은 0

now.getDate();

now.getDay(); //일요일은 0

now.getHours();

now.getMinutes();

now.getSeconds();

now.getMilliseconds();

now.toString()

now.toLocaleString();

now.toLocaleDateString();

now.toLocaleTimeString();

now.getUTCHours();

now.toUTCString();



4) Function 생성자


함수를 생성하는 생성자


var square = new Function( "x", "return x * x");


Function 생성자는 함수를 생성하는 기능보다 함수 리터럴에 래퍼 객체를 제공한다는 점에 의미를 둔다.


 

5) 전역객체


- 전역 프로퍼티(undefined, NaN,Infinity), 생성자(Object, String(), Number 등), 전역 함수(parseInt(), parseFloat(), isNaN()등), 내장객체(Math, JSON, Reflect)

- window 객체도 전역객체이다.


자바스크립트는 네이티브 객체, 호스트 객체, 사용자 정의 객체로 나눌수있다.


호스트 객체 - 자바스크립트 실행 환경에 정의된 객체가 호스트 객체, 브라우저 객체(Window, Navigator, History, Location 등), DOM에 정의되어 있는 객체, Ajax를 위한 XMLHttpRequest 객체, HTML5의 각종 API 등이 클라이언트 측 자바스크립트에 정의된 호스트 객체의 예.



출처 : 모던자바스크립트 입문 / 길벗 / 이소 히로시

https://www.gilbut.co.kr/book/view?bookcode=BN001980


'Javascript' 카테고리의 다른 글

[연산자]  (0) 2018.12.29
[배열]  (0) 2018.12.27
[객체와 배열, 함수의 기초]  (0) 2018.12.25
[ajax] 비동기 통신(1)  (0) 2018.10.22
[input]3단위에 콤마(,)찍기  (0) 2018.09.27
Comments