Notice
Recent Posts
Recent Comments
Link
기록하는 개발자
0419_ OOP ; 객체지향 프로그래밍 본문
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