Object Oriented JavaScript: Polymorphism with examples


oopjsAgain this is not the advance topic of JavaScript but it relies under Object Oriented JavaScript & polymorphism is one of the tenets of Object Oriented Programming (OOP), we all know what is Polymorphism from other languages (like C#, Java etc) but we always think when to use it, why to use it and how to this, and most of us are still in confusion that should we really use it? blah !!!.

JavaScript is dynamically typed language [a big issue to discuss], but for understanding purpose:

Statically typed programming languages do type checking (the process of verifying and enforcing the constraints of types) at compile-time as opposed to run-time. (Java, C etc)

Dynamically typed programming languages do type checking at run-time as opposed to Compile-time. (JavaScript etc)

Though in JavaScript it is a bit more difficult to see the effects of polymorphism because the more classical types of polymorphism are more evident in statically-typed systems.

 

Why: Polymorphism foster many good attributes in software, among other things it fosters modularity & reuse-ability & make the type system more flexible & elastic.

Poly= many, Morphism=form

When: It is used when we want a function’s (let say function HOLA) interface to be flexible enough to accept different types or number of parameters. Also, based on changing parameters types or numbers, we might want the function HOLA to behave differently (morphism).

How: use case- Take the old example of Person & Employee, where all employees are people, but all people are not employees. Which is to say that people will be the super class, and employee the sub class. People may have ages and weights, but they do not have salaries. Employees are people so they will inherently have an age and weight, but also because they are employees they will have a salary.

Polymorphism takes advantage of inheritance in order to make this happen.

Lets jump into code samples: take the basic shapes things:

	var shape = function (){};
	shape.prototype.draw = function(){
		return "i am generic shape";
	}
	//circle
	var circle = function(){}
	circle.prototype = Object.create(shape.prototype);
	circle.prototype.draw= function(){
		return "i am a circle";
	}
	//triangle
	var triangle = function (){}
	triangle.prototype = Object.create(shape.prototype);
	triangle.prototype.draw= function(size){
		return "this is triangle";
	}
	//printing shapes
	var shapes = [new shape(), new circle(), new triangle(23)];
	shapes.forEach (function (shapeList){
		console.log(shapeList.draw());
	});

 

Stay tuned….

 


KNOLDUS-advt-sticker

Advertisements

About Nikhil Kumar

Senior Software Consultant at Knoldus Software LLP.
This entry was posted in JavaScript, Scala and tagged , , , , . Bookmark the permalink.

2 Responses to Object Oriented JavaScript: Polymorphism with examples

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s