Javascript/Node.js

[JavaScript] 객체지향

Frankie 2020. 2. 23. 15:50

객체지향 프로그래밍 교육과정은 1. 문법 2. 설계 - 추상화 능력이 필요로 된다

 

부품화 - 객체를 하나의 부품처럼 사용

 

은닉화, 캡슐화 - 내부의 동작 방법을 객체에 숨기고 사용방법만을 노출

 

인터페이스 - 부품과 부품을 서로 교환할 수 있어야 한다

 

객체 - 서로 연관된 변수와 함수를 그룹화

 

var Person = {}

Person.name = 'egoing' // 속성

Person.introduce = function(){} // 메소드

 

생성자 - 객체를 만드는 역할을 하는 함수

var p = new Person();

new - 새로운 객체를 만든 후 이를 리턴

 

전역 객체

func();

window.func(); // 모든 전역변수와 함수는 사실 windows 객체의 속성이다.

둘 모두 함수 호출 시 실행

자바스크립트에서 모든 객체는 기본적으로 전역변수의 속성임을 알 수 있다.

 

this는 함수 내에서 함수를 어떻게 호출하냐에 따라서 this가 가리키는 대상이 달라진다.

 

메소드 호출

var o = {

     func : function(){

            if( o === this){ //this -> 객체의 소속인 메소드의 this는 그 객체를 가리킨다

                     document.write("o===this");

             }

     }

}

o.func();

 

생성자 호출

var funcThis = null;

function Func(){

     funcThis = this; 

}                         

var o1 = new func(); //일반 함수로 호출 ->함수로 사용할 때는 this값이 window를 가리킨다

if(funcThis === window){

}

var o2 = new func(); //생성자로 호출 -> 생성자로 사용할 때는 this값이 생성될 객체를 가리킨다

if(funcThis === o2){

}

 

함수의 메소드 apply, call을 이용하여 this의 값을 제어할 수 있다

func.apply(o);

 

상속

function A(a){

}

function B(a){

}

B.prototype = new A();

 

prototype(원형) - 상속의 구체적인 수단

prototype에 저장된 속성들은 생성자를 통해서 객체가 만들어질 때 그 객체에 연결한다

 

표준 내장 객체 - 자바스크립트가 기본적으로 가지고 있는 객체들

Object, Function, Array, String, Boolean, Number, Math, Date, RegExp

 

Object 객체 - 객체의 가장 기본적인 형태를 가지고 있는 객체

자바스크립트의 모든 객체는 Object 객체를 상속받는다.

 

Object 확장하면 모든 객체가 접근할 수 있는 API를 만들 수 있다

Object.Prototype.contain = function(needle){

              for(var name in this){

                        if(this[name]===needle){

                                return true;

                        }

              }

              return false;

}

-> Object 객체는 확장하지 않는 것이 바람직 하다 모든 객체에 영향을 주기 때문에

 

원시 데이터 타입 - 객체가 아닌 데이터 타입

숫자, 문자열, Boolean, null, undefined

 

객체 데이터 타입

저 위 5개 빼고 모두

 

Wrapper 객체 - 원시 데이터 행을 객체처럼 다룰 수 있도록 하기 위한 객체

String, Number, Boolean

 

이렇게 자바스크립트라는 언어에 대해서 간단히 살펴봤다. 이거를 공부하기 전에 자바라는 프로그래밍 언어를 공부했어서 객체지향이나 함수를 사용하는 부분에서 크게 어렵게 느껴지진 않았다

 

 

'Javascript > Node.js' 카테고리의 다른 글

Postman  (0) 2021.04.16
Express  (0) 2021.04.16
[Sequelize] Sequelize로 postgresql 다루기  (0) 2020.03.30
[JavaScript] 함수지향  (0) 2020.02.23
[JavaScript] 자바스크립트 기본  (0) 2020.02.22