javascript에도 객체(object)가 존재한다.
변수만을 가지고 있는 literal type, 변수와 메서드를 가지고 있는 class type의 객체가 있다.
Literal Object
선언
단일 생성
let(or var) 참조명 = { 변수명1 : 변수값1 , 변수명2 : 변수값2, ... }
생성자 선언
function 생성자명(매개변수1, 매개변수2, ...) {
this.변수명1 = 매개변수1;
this.변수명2 = 매개변수2;
... }
생성자를 이용한 객체 생성
let(or var) 참조명 = new 생성자명(변수값1, 변수값2, ..)
Class Object
선언
단일생성
let 객체명 = { 변수명1 : 변수값1 , 변수명2 : 변수값2, ... , 함수명1 : function( 매개변수 ) { 실행문 } }
생성자 선언
function 생성자명(매개변수1, 매개변수2, ...) {
this.변수명1 = 매개변수1;
this.변수명2 = 매개변수2;
...
this.함수명 = function( 매개변수 ) { 실행문 };
}
생성자를 이용한 객체 생성
let 객체명 = new 생성자명( 매개변수 );
객체의 멤버 변수,메서드 접근
객체명.변수명;
객체명.함수명();
Prototype
객체에는 원형이 존재한다. 이는 생성자에서 선언되 객체의 원형으로 이를 복사해서 새로운 객체를 만들게 된다.
공통적으로 사용되는 상수나, 함수를 모든 각각의 객체가 갖도록 하지 않고, prototype에만 선언함으로 시스템의 자원을 아낄 수 있다.
static과 다른점은, static은 인스턴의 멤버변수에는 접근할수가 없지만, prototype은 멤버변수에도 접근할 수 있다.
prototype 함수 정의
생성자명.prototype.함수명 = function( 매개변수 ) { 실행문 };
생성자 선언시뿐만 아니라 , 생성자 밖에서도 추가해줄수 있다.
prototype 함수 호출
prototype 함수를 호출하기 위해선 일단 prototype을 원형으로 한 객체(인스턴스)가 생성되어 있어야 한다. (static과 다른점)
객체명.함수명(매개값);
Static
static변수나 함수(method)는 객체(인스턴스)가 없이도 class가 일단 로드된 후에는 호출이 가능하다.
static 함수 정의
생성자명.함수명 = function( 매개변수 ) { 실행문 }
static 멤버 호출
객체와 무관하게 호출이 가능하다.
생성자명.함수명();
'Javascript' 카테고리의 다른 글
2.Operator (0) | 2019.12.08 |
---|---|
1.상수(const), 변수(let, var), 데이터타입, 함수(function) (0) | 2019.12.08 |
4.Array (0) | 2019.12.07 |