Duck Typing and Structural Type System

nearworld·2023년 1월 29일
0

javascript

목록 보기
7/7

Duck Typing
대상이 무엇이든 오리처럼 행동하면 오리라고 부르겠다.
객체의 종류가 서로 다르더라도 같은 프로퍼티를 갖고 있다면 같은 타입으로 구별하겠다.

class Duck {
  quack = () => console.log('quack! quack!');
}
class Cat {
  quack = () => console.log('quack! quack!');
}

const makeDucksQuack = (possibleDuckImposter) => possibleDuckImposter.quack();

const duck = new Duck();
const cat = new Cat();

makeDucksQuack(duck); // quack! quack!
makeDucksQuack(cat); // quack! quack!

makeDucksQuack 함수의 인자인 possibleDucksImposter에 타입을 지정하여 인자로 들어오는 데이터를 판정하는게 아니라 quack이라는 메서드를 가지고 있는지를 가지고 판별하겠다는 것이다. quack() 메서드를 가지고 있는지를 가지고 타입을 판정하겠다는 것이다.

profile
깃허브: https://github.com/nearworld

0개의 댓글