professional-javascript-04-DynamicPrototypePolygonExample.htm / htm
<html> <head> <title>Example</title> </head> <body> <script type="text/javascript"> function Polygon(iSides) { this.sides = iSides; if (typeof Polygon._initialized == "undefined") { Polygon.prototype.getArea = function () { return 0; }; Polygon._initialized = true; } } function Triangle(iBase, iHeight) { Polygon.call(this, 3); this.base = iBase; this.height = iHeight; if (typeof Triangle._initialized == "undefined") { Triangle.prototype.getArea = function () { return 0.5 * this.base * this.height; }; Triangle._initialized = true; } } Triangle.prototype = new Polygon(); function Rectangle(iLength, iWidth) { Polygon.call(this, 4); this.length = iLength; this.width = iWidth; if (typeof Rectangle._initialized == "undefined") { Rectangle.prototype.getArea = function () { return this.length * this.width; }; Rectangle._initialized = true; } } Rectangle.prototype = new Polygon(); var triangle = new Triangle(12, 4); var rectangle = new Rectangle(22, 10); alert(triangle.sides); alert(triangle.getArea()); alert(rectangle.sides); alert(rectangle.getArea()); </script> </body> </html>
(C) Æliens 20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.