JSFiddle - React, Tailwind, and code Playground

by Kaushik Ruparel

HTML

Factory pattern for creating Javascript Objects
Also includes an approach to create static variables
now is a private variable exposed only via getCreationTime function

JavaScript

//Factory pattern
var Car = function (make, model) {
    var newCar = Object.create(Car.prototype);
    var now = Date.now();
    newCar.make = make;
    newCar.model = model;

    newCar.getCreationTime = function () {
        return now;
    };

    //Class scope / static variable
    if (Car.numberCreated) {
        Car.numberCreated += 1;
    } else {

        Car.numberCreated = 1;
    }
    console.log("Car.numberCreated = " + Car.numberCreated);
    
    return newCar;

};

Car.prototype = {
    driveFast: function () {
        this.speed = 100;
    }
};

var toyota = Car("Toyota", "FJ40");
toyota.driveFast();
console.log(toyota);
var honda = Car("Honda", "Civic");
console.log(honda);
var acura = Car("Acura", "MDX");
acura.driveFast();
console.log(acura);