Skip to content

Instantly share code, notes, and snippets.

@iamarkdev
Last active December 19, 2016 06:11
Show Gist options
  • Save iamarkdev/0e9d737567f5d10a8951f92ff1e7e781 to your computer and use it in GitHub Desktop.
Save iamarkdev/0e9d737567f5d10a8951f92ff1e7e781 to your computer and use it in GitHub Desktop.
function VehicleConstructor(name) {
var vehicle = {};
//Properties
vehicle.name = name;
vehicle.milesTravelled = 0;
vehicle.maxPassengers = 0;
vehicle.currentPassengers = 0;
// Default Assignments
switch (vehicle.name) {
case "bike":
vehicle.maxPassengers = 1;
break;
case "sedan":
vehicle.maxPassengers = 4;
break;
case "bus":
vehicle.maxPassengers = 20;
break;
}
//Methods
vehicle.move = function (avgSpeedMph, forTimeHours) {
vehicle.milesTravelled += avgSpeedMph * forTimeHours;
return vehicle.milesTravelled;
}
vehicle.makeNoise = function() {
switch (vehicle.name) {
case "bike":
return "ring ring";
break;
case null:
return "No object, no noise";
break;
default:
return "honk honk";
break;
}
}
vehicle.checkMiles = function() {
return vehicle.milesTravelled;
}
vehicle.pickUpPassengers = function(){
if (vehicle.currentPassengers >= vehicle.maxPassengers) {
console.log("You can't carry anymore!");
return false;
}
vehicle.currentPassengers++;
return vehicle.currentPassengers;
}
return vehicle;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment