더북(TheBook)

자, 그럼 여기서 퀴즈를 내겠다! 점 데이터에 z 좌표를 추가하면 어떻게 될까?


var objectData = [
      { x: 10, y: 130,  z: 99 },
      { x: 100, y: 60,  z: 202 },
      { x: 190, y: 160, z: 150 },
      { x: 280, y: 10,  z: 175 }
],

 

프로그램이 기꺼이 같은 결과를 낼 거로 추측했다면 정답이다. 자바스크립트에서 x, y, z 프로퍼티를 가진 객체는 x, y 프로퍼티만 가진 객체와 다를 바 없다.

생성자 함수로 객체를 만들어도 모양은 딴판이지만, 결과는 같다.


function XYPair(x,y) {
this.x = x;
this.y = y;
}
 
var objectData = [
  new XYPair(10, 130),
  new XYPair(100, 60),
  new XYPair(190, 160),
  new XYPair(280, 10)
],

 

이런 기법을 덕 타이핑(duck typing)이라 한다. “오리처럼 생겨서 오리처럼 걷고 오리처럼 꽥꽥 소리를 낸다면 그건 오리다 ”라는 속담에서 유래됐다. 자바스크립트에서 오리는 여러분의 베프(베스트 프렌드)다. 다음과 같이 써서 판별할 수 있다.

if(something instanceof XYPair)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.