Qual é a melhor maneira de substituir Model.get (attr) no Backbone.js?

Estou usando o Backbone.js pela primeira vez e gostando até agora. Uma coisa que não consigo resolver no momento em atributos dinâmicos de modelos. Por exemplo, digamos que eu tenho um modelo de pessoa e desejo obter o nome completo:

var Person = Backbone.Model.extend({
  getFullName: function () {
    return this.get('firstName') + ' ' + this.get('surname');
  }
});

Então eu poderia fazerperson.getFullName(). Mas gostaria de mantê-lo consistente com os outros getters, mais comoperson.get('fullName'). Não vejo como fazer isso sem substituir Person # get de maneira confusa. Ou essa é minha única opção?

Este é o que eu tenho até agora para a opção principal:

var Person = Backbone.Model.extend({
  get: function (attr) {
    switch (attr) {
    case 'fullName':
      return this.get('firstName') + ' ' + this.get('surname');
      break;
    case 'somethingElse':
      return this.doSomethingClever();
      break;
    default:
      return Backbone.Model.prototype.get.call(this, attr);
    }
  }
});

Suponho que não seja terrível, mas parece que deveria haver uma maneira melho

questionAnswers(3)

yourAnswerToTheQuestion