Prototype

by Shridhar Baddur

JavaScript

//base class
var Job = function() {
	this.pays = true;
};
Job.prototype.print = function() {
	console.log(this.pays ? "Please hire me " : "No, thank you!");
}
//console.dir(Job);

//sub class
var TechJob = function(jobTitle, pays) {
	//inherits all the properties defined in Job class
	Job.call(this);
  
  this.jobTitle = jobTitle;
  this.pays = pays;
};
//Inherits the methods/prototype functions from Job
TechJob.prototype = Object.create(Job.prototype);

//set a constructor for TechJob
TechJob.prototype.constructor = TechJob;

TechJob.prototype.print = function(){
	console.log(this.pays ? "Cool, Please hire me as " + this.jobTitle : "Please call me for any other openings");
}

var softwarePosition = new TechJob('JS Developer', true);
var softwarePosition1 = new TechJob('PHP Developer', false);

console.dir(softwarePosition);
//console.dir(softwarePosition1.print);