Object Oriented JavaScript- 4

We have talked about Basic OO concepts, Objects and Classes, and Inheritance in JS. Today, let me look at polymorphism in JS.

Now polymorphism is a criteria which can help me create multiple method with the same name, with the program deciding at the run time, that which method to be called, based on signature of the method. The signature of methods can differ by number of arguments it takes, or type of arguments. In Js, we can not differentiate between methods based on type of arguments, because every type in JS can be treated as type ‘var’. But yes, JS supports polymorphism using different number of arguments, though indirectly.

In a way, polymorphism in JS is simpler than in OO languages. In JS you don’t even need to create multiple methods, in the same method, you can have different handlers for different number of arguments. arguments.length does the trick for you. Enough of talking, here is your example

<script language=”JavaScript”>
//trying to create a closed figure

function closedFigure()
{

this.createFigure=function()
{
var length = arguments.lengt
h;
if(length<3) { alert("atleast 3 sides are required to close the figure"); } if(length==3) { alert("you are trying to create a triangle with "+ arguments[0]+","+arguments[1]+","+arguments[2]); } if(length==4) { alert("you are trying to create a quadrilateral with "+arguments[0]+","+arguments[1]+","+arguments[2]+","+arguments[3]); } if(length==5) { alert("you are trying to create a pentagon with "+arguments[0]+","+arguments[1]+","+arguments[2]+","+arguments[3]+","+arguments[4]); } } } var figure=new closedFigure(); figure.createFigure(1,2); figure.createFigure(1,2,3); figure.createFigure(1,2,3,4); figure.createFigure(1,2,3,3,5); </script>