본문 바로가기
Coding/Javascript

Javascript - 객체지향프로그램(Object Oriented program)

by z쿳쿳z 2020. 6. 5.
728x90
반응형

Javascript는 객체 지향 프로그램이다. 객체 지향 프로그램은 레고 블럭처럼 조립해서 하나의 프로그램을 만들 수 있다. 객체지향프로그램은 말 그대로 객체를 지향하는 프로그램이기 때문에 객체를 만드는 것에서 부터 시작된다.

(추가내용(6/17) 절차지향프로그램이 있다. 절차진행 프로그램은 함수나 코드를 만들어 놓고 어떻게 절차대로 할 것인지 정해야 한다. 재사용의 어려움이 있다.)

 

앞서 객체를 만들때 선언하고 변수에 중괄호를 활당하여 객체를 만들 수 있다고 했다.(let p1 = {};) 하지만 이것은 객체 리터럴(literal)에 불과하다. 리터럴의 뜻은 '문자그대로의' '직역의' 뜻을 가지고 있다. 즉, 선언하고 변수에 중괄호를 할당하는 것은 객체를 표기하는 값이다.

 

실제로 객체는 서로 연관된 변수와 함수를 그룹핑한 것이라고 할 수 있다.

 - 객체 내의 변수를 Property라고 하고 그 값으로 함수를 가지고 있으면 함수를 메소드라고 부른다.

 - 객체지향 프로그램은 부품을 만들어 필요할 때 불러서 사용하기가 편리하다.

 

원조 객체 생성 방법(객체의 리터럴에 익숙하지만, 오히려 더욱 윗부분에서 생각을 하면 객체 생성의 시초(?)라고 생각된다.)

생성자와 New

 - 생성자(constructor)는 객체를 만드는 함수이다.

 - 여기서 Constructor는 Car라는 함수이며, Constructor를 활용하여 만든 변수를 instance라고 한다.

 - Constructor를 활용하여 객체를 생성 할 때, new라는 키워드를 사용하면 된다.

  *Car라는 Constructor를 활용하여 avante(instance) 변수에 객체를 생성했다.

  *avante 변수를 호출 하면 객체가 생성 된것을 확인 할 수 있다.

  *객체[키]을 호출하면 value값이 호출 되는것을 확인 할 수 있다.

  *여기서 사용되는 this는 나중에 언급될 내용이다(여기서 사용되는 this는 constuctor가 함수가 사용되면서 저장되는 변수라고 생각하면 된다.)

 

from codestates
from codestates

 

  *하기 예제를 보면 introduce라는 변수에 함수를 저장 할 수 있다.

  *이전에 배열 메소드에서 많이 본 형태 일 것이다.

  *array.sort(); array.push(); array.pop(); 등과 같이 내장함수를 사용하는 형식처럼 p1.introduce()는 내장함수를 호출하는 메소드 사용방법과 유사하다.

  *MDN에서 메소드 등을 찾아보면 Array.prototype.sort()와 같은 메소드를 확인 한적이 있는데, 이러한 내장 함수들은 객체에 저장 되어 있는 변수(property)에 값으로 함수가 저장되어 있다.(여기서 사용되는 prototype은 나중에 언급될 예정이다. prototype을 이해하기 위해서는 상속이라는 개념이 필요하고, 상속이라는 개념과 함께 prototype을 설명할 예정이다.)

  *여기서 사용되는 this는 나중에 언급될 내용이다(여기서 사용되는 this는 constuctor가 함수가 사용되면서 저장되는 변수라고 생각하면 된다.)

 

from 생활코딩

#javascript#생활코딩#codestates#객체지향프로그램#생성자#Constructor#new#instance#literal#리터럴#prototype#내장함수#property#객체

728x90
반응형

'Coding > Javascript' 카테고리의 다른 글

Javascript - 상속(inheritance) 과 Prototype  (1) 2020.06.08
Javascript - this  (1) 2020.06.07
Javascript - 재귀함수(recursion)  (1) 2020.06.03
Javascript - 익명함수  (1) 2020.06.02