The following code should look familiar, we’re creating an object and assigning a property.
function Person(id) { var self = this; self.id = id; } var instance = new Person(1);
One challenge with this approach is that as you add properties remembering their order can become a mental task.
function Person(id, firstName, lastName, phoneNumber) { var self = this; self.id = id; self.firstName = firstName; self.lastName = lastName; self.phoneNumber = phoneNumber; } var instance = new Person(1, 'Bill', 'Gates', '212-555-1234');
An alternate approach to consider is to use jQuery’s extend function (or Underscore, AngularJS, etc) which enables passing named parameters.
function Person(data) { var self = this; $.extend(self, data); } var instance = new Person({ id: 1, firstName: 'Bill', lastName: 'Gates', phoneNumber: '212-555-1234' });
A nice by-product of this approach is that it makes it simple to serialize/de-serialize the object, for example to store it to Local Storage.
var jsonString = JSON.stringify(instance); // write to storage // ... // read from storage var instance = new Person(JSON.parse(jsonString));