기록하는 개발자

0419_ OOP ; 객체지향 프로그래밍 본문

취업스터디

0419_ OOP ; 객체지향 프로그래밍

hannah1009 2022. 4. 19. 10:54
728x90

개념 빠르게 훑기

1. 객체 지향 프로그래밍 이란?
: 객체라는 기본 단위를 중심으로 나누고 상호작용하는 방식

 

2. javascript 와의 관계
: ES6 이전 OOP 를 위해 Constructor 기능을 사용했으나, 현재 클래스가 추가되었으므로 C++처럼 OOP 구조를 사용할 수 있게 됨

 

3. 객체 지향 프로그래밍?
: 모듈화를 통해 유지보수 가능한 코드로 개발, 실제 개념을 객체화 하기때문에 사람이 이해할수 있는 코드로 프로그래밍 가능

 

4. 객체 란?
: 하나의 기능을 수행하는 메소드와 변수의 묶음

 

 

자바 스크립트로 객체 지향 프로그래밍을 하려면?

: 자바스크립트는 유연한 언어이다. 함수가 객체로 쓰일수 있지만 메서드도 될 수 있다. call bind를 통해 객체지향으로 개발할 수 있다.

 

* call : 모든 함수가 갖고 잇는 메서드, 내부적으로 실행 -> this. 를 붙여 실행

// 임의의 객체 생성

const phoneNumber = {
	name: "hannah",
    contact: "010-1234-1234",
    email: "kiwi@gamil.com"
}

function mixUp(obj) {
	return obj(this.name+", "+this.contact);
}

console.log(mixUp.call(phoneNumber));

 결과는 어떨까? hannah, 010-1234-1234 가 나온다.

 

* bind : 그럼 함수가 호출될 때마다 this를 바꾸는게 아니라 함수의 내부적으로 사용할 this를 고정시킬수는 없을까?

bind가 해결할 수 있다. 

let bindMixUp = mixUp.bind(phoneNumber);
console.log(bindMixUp);

 

여기서 call과의 차이점은 call은 실행할 때 함수의 콘텍스트, this값을 바꾸고 bind는 내부적으로 어떤 함수의 this 값을 영구적으로 바꾸는 새로운 함수를 만든다는 점이다.

'취업스터디' 카테고리의 다른 글

0420_ Stack, Queue  (0) 2022.04.20
0420_ JWT, OAuth  (0) 2022.04.20
0419_ URL&URI, NPM  (0) 2022.04.19
0418_ 브라우저 작동원리  (0) 2022.04.18
0418_ 변수, 호이스팅, node.js 정의  (1) 2022.04.18
Comments