Slide 45
Slide 45 text
OO Revisited
Oct. 2007 Jan. 2009 Jun. 2009 Jan. 2010 Mar. 2012
Dec. 2010
Generic Functions Double Dispatch Revisited Value Types Value Proxies Value Objects
1 function pointPlusNumber(a, b) {
2 return new Point(a.x + b, a.y + b);
3 }
4
5 Function.defineOperator('+', Point, Number, pointPlusNumber);
6
7 function numberPlusPoint(a, b) {
8 return new Point(a + b.x, a + b.y);
9 }
10
11 Function.defineOperator('+', Number, Point, numberPlusPoint);
12
13 function addPoints(a, b) {
14 return new Point(a.x + b.x, a.y + b.y);
15 }
16
17 Function.defineOperator('+', Point, Point, addPoints);