Duck Typing
"만약 어떤 새가 오리처럼 걷고, 헤엄치고, 꽥꽥거리는 소리를 낸다면 나는 그 새를 오리라고 부를 것이다"
-
객체의 변수, 메소드 집합이 객체의 타입을 결정한다.
-
정적 타이핑 언어 처럼 런타임 전 컴파일이나 타입체킹을 하지 않으므로, 함수의 의도에 맞지 않는 코딩을 할 수 있다.
-
타입이 맞지 않거나, 체크가 안되어도 어떻게든 실행은된다. 런타임 중 해당 함수를 실행하긴 하는데 해도 에러가 출력되는거지 실행은 된다.
이점
- 하나의 함수로 여러 객체 단위의 행동을 유연하게 작성 할 수 있다.
- 타언어에서는 제네릭, 상속(다형성)을 위해서 어떤 테크닉을 배워야하는데, 자바스크립트는 이런 것들을 하지 않아도 됨.