1. 2일 전

    Date, JSON 객체

    Date, JSON 객체의 이모저모

  2. 19일 전

    ES6 - Generator

    Generation 함수 사용하기

  3. 26일 전

    ES6 - iteration & for ... of

    iteration과 활용

  4. 1달 전

    ES6 - Symbol

    왜 Symbol이 필요할까?

  5. 1달 전

    ES6 - Rest/Spread 연산자

    코드를 더 간결하게

  6. 2달 전

    ES6 - Promise

    콜백 지옥을 벗어나자

  7. 2달 전

    Webpack(3) - Plugin

    Plugin으로 더 강력한 Webpack

  8. 2달 전

    ES6 화살표 함수

    화살표 함수에 대해 깊게 이해하기

  9. 2달 전

    32. 이벤트

    이벤트 루프

  10. 2달 전

    JS가 객체지향언어라 할 수 있는 이유

    대체가능성, 내적동질성

  11. 3달 전

    Webpack(2) - Loader

    Loader로 다양한 파일 다루기

  12. 3달 전

    비동기 처리

    JavaScript에서 비동기 처리

  13. 3달 전

    19. 클로져

    JavaScript에서 클로저란?

  14. 3달 전

    18. 실행컨텍스트

    JavaScript에서 실행컨텍스트

  15. 3달 전

    17. this

    JavaScript에서 this

  16. 3달 전

    Webpack(1) - 기본편

    Webpack 대한 기본 이해

  17. 4달 전

    Babel(4) - polyfill

    더 많은 브라우저 지원하기

  18. 5달 전

    Babel(3) - 설정편

    설정하는 다양한 방법

  19. 5달 전

    Babel(2) - 실행편

    실습을 통한 더 깊은 이해

  20. 5달 전

    Babel(1) - 기본편

    babel에 대한 기본 이해

Tamm자바스크립트 웹 개발 환경을 좋아하고 사람들에게 재미를 주는 것에 관심이 많은 개발자 입니다.

JS가 객체지향언어라 할 수 있는 이유

대체가능성, 내적동질성

featured image thumbnail for post JS가 객체지향언어라 할 수 있는 이유

https://www.youtube.com/watch?v=bgP_1l7aJnc&feature=youtu.be

  1. 대체 가능성
  2. 내적 일관성, 내적 동일성

객체지향 개발을 할 수 있으려면 위 두 가지 특성을 가질 수 있도록 언어에 장치를 두어야 한다. 자바스크립트는 Prototype으로 위 두 특징을 만족시킴

대체가능성(Polymorphism)

확장한 자식이 부모를 대신 할 수 있다.

const Parent = class {};
const Child = class extends Parent {};
const a = new Child();
console.log(a instanceof Parent);

자바스크립트는 프로토타입 체인을 통해 대체가능성을 보장한다.

내적 동질성

아무리 확장 되기 전 메소드를 호출해도 나의 본질은 변하지 않는다.

const Parent = class {
  wrap() {
    this.action();
  }
  action() {
    console.log("Parent");
  }
};
const Child = class extends Parent {
  action() {
    console.log("Child");
  }
};

const a = new Child();
a.action();
a.wrap();