Skip to content

Instantly share code, notes, and snippets.

@oprearocks
Last active August 29, 2015 14:00
Show Gist options
  • Save oprearocks/11500164 to your computer and use it in GitHub Desktop.
Save oprearocks/11500164 to your computer and use it in GitHub Desktop.
Object literal vs. constructor -- proof of concept
/**
* Single object -- object literal
*/
var db = {
host: 'localhost',
dbname: 'myDB',
credentials: {
username: 'dbuser',
password: 'dbpassword'
},
connect: function() {
console.log(
'Connecting to %s with %s:%s on %s',
this.dbname,
this.credentials.username,
this.credentials.password,
this.host
);
},
};
/**
* Constructor
*/
function DB(dbname, credentials, host) {
this.dbname = dbname;
this.host = host;
this.credentials = credentials;
}
DB.prototype.connect = function() {
console.log(
'Connecting to %s with %s:%s on %s',
this.dbname,
this.credentials.username,
this.credentials.password,
this.host
);
};
var myNewDb = new DB('myDataBase', {
username: 'someuser',
password: 'somepass'
},
'localhost');
myNewDb.connect();
var myOtherDb = new DB('myOtherDatabase', {
username: 'anotheruser',
password: 'anotherpass'
}, 'otherhostname');
myOtherDb.connect();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment