index.js
[edit | edit source]// This program demonstrates use of the Polygon, Triangle, Rectangle, and Square classes. constPolygon=require("./polygon"); constSquare=require("./square"); constRectangle=require("./rectangle"); constTriangle=require("./triangle"); main(); functionmain(){ lettriangle=newPolygon([3,4,5]); console.log("triangle sides:",triangle.sides); console.log("triangle perimeter:",triangle.perimeter); letrectangle=newPolygon([4,2,4,2]); console.log("rectangle sides:",rectangle.sides); console.log("rectangle perimeter:",rectangle.perimeter); letsquare=newPolygon([2,2,2,2]); console.log("square sides:",square.sides); console.log("square perimeter:",square.perimeter); triangle=newTriangle(3,4,5); console.log("triangle sides:",triangle.sides); console.log("triangle perimeter:",triangle.perimeter); console.log("triangle area:",triangle.area); rectangle=newRectangle(4,2); console.log("rectangle sides:",rectangle.sides); console.log("rectangle perimeter:",rectangle.perimeter); console.log("rectangle area:",rectangle.area); square=newSquare(2); console.log("square sides:",square.sides); console.log("square perimeter:",square.perimeter); console.log("square area:",square.area); }
polygon.js
[edit | edit source]// Supports polygon calculations for perimeter. classPolygon{ _sides=undefined; // Creates a polygon object. constructor(sides){ this.sides=sides; } getperimeter(){ returnthis.sides.reduce((a,b)=>a+b,0); } } module.exports=Polygon;
rectangle.js
[edit | edit source]// Supports rectangle calculations for perimeter and area. constPolygon=require("./polygon"); classRectangleextendsPolygon{ // Creates a rectangle object. constructor(length,width){ super(length,width,length,width); } // Gets area of the rectangle. getarea(){ letlength=this.sides[0]; letwidth=this.sides[1]; if(length==width){ width=this.sides[2]; } letarea=length*width; returnarea; } } module.exports=Rectangle;
square.js
[edit | edit source]// Supports square calculations for perimeter and area. constPolygon=require("./polygon"); classSquareextendsPolygon{ // Creates a square object. constructor(side){ super(side,side,side,side); } // Gets area of the square. getarea(){ letside=this.sides[0]; letarea=side*side returnarea; } } module.exports=Square;
triangle.js
[edit | edit source]// Supports triangle calculations for perimeter and area. constPolygon=require("./polygon"); classTriangleextendsPolygon{ // Creates a triangle object. constructor(side1,side2,side3){ super(side1,side2,side3); } // Gets area of the triangle. // References: // https://www.mathsisfun.com/geometry/herons-formula.html getarea(){ lets=this.perimeter/2; leta=this.sides[0]; letb=this.sides[1]; letc=this.sides[2]; letarea=Math.sqrt(s*(s-a)*(s-b)*(s-c)); returnarea; } } module.exports=Triangle;
Try It
[edit | edit source]Copy and paste the code above into one of the following free online development environments or use your own JavaScript compiler / interpreter / IDE.
- Chapman.edu: Online JavaScript Interpreter
- CodeChef
- GDB Online
- Ideone
- JS.do
- paiza.IO
- PythonTutor
- repl.it
