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

+ Recent posts