Using "Object.create" instead of "new"
Javascript 1.9.3 / ECMAScript 5 introduces , which Douglas Crockford amongst others has been advocating for a long time. How do I replace in the code below with ?Object.create
new
Object.create
var UserA = function(nameParam) {
this.id = MY_GLOBAL.nextId();
this.name = nameParam;
}
UserA.prototype.sayHello = function() {
console.log('Hello '+ this.name);
}
var bob = new UserA('bob');
bob.sayHello();
(Assume exists).MY_GLOBAL.nextId
The best I can come up with is:
var userB = {
init: function(nameParam) {
this.id = MY_GLOBAL.nextId();
this.name = nameParam;
},
sayHello: function() {
console.log('Hello '+ this.name);
}
};
var bob = Object.create(userB);
bob.init('Bob');
bob.sayHello();
There doesn't seem to be any advantage, so I think I'm not getting it. I'm probably being too neo-classical. How should I use to create user 'bob'?Object.create