Here is a cool way to dynamially create a class in JavaScript:
function createDynamicClass(name, properties) {
var obj = window[name] = function() {
var self = this,
args = [].slice.call(arguments);
args.forEach(function(arg, idx) {
self[properties[idx]] = arg;
});
};
properties.forEach(function(prop) {
obj.prototype[prop] = null;
});
}
Example Usage
// define properties a "Hotel" class should have
var props = ['name', 'rooms', 'booked'];
// create a "Hotel" class
createDynamicClass("Hotel", props);
// create 3 "Hotel" with some properties missing to prove prototype
var hotels = [
new Hotel("Hilton", 1000, 500),
new Hotel("Best Western", 100),
new Hotel("Motel 6")
];
Example
https://jsfiddle.net/1ndo2w2p/