Использование «Object.create» вместо «new»

Javascript 1.9.3 / ECMAScript 5 представляет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();

(Предположим, что MY_GLOBAL.nextId существует).

Лучшее, что я могу придумать, это:

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();

Кажется, что нет никакого преимущества, поэтому я думаю, что не получаю его. Я, наверное, слишком неоклассичен. Как я должен использоватьObject.create создать пользователя "Боб"?

Ответы на вопрос(14)

Ваш ответ на вопрос