Quelle est la meilleure façon de remplacer le Modèle.get(attr) dans Backbone.js?

Je suis en utilisant Backbone.js pour la première fois, et l'aimer jusqu'à présent. Une chose que je ne peux pas pour le moment dans la dynamique des attributs de modèles. Par exemple, dire que j'ai une Personne de modèle, et je veux obtenir leur nom complet:

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

Ensuite, j'ai pu faire person.getFullName(). Mais je tiens à assurer sa cohérence avec les autres méthodes, comme la plus person.get('fullName'). Je ne vois pas comment faire sans messily primordial Personne#get. Ou est-ce ma seule option?

C'est ce que j'ai obtenu jusqu'à présent pour la primauté de l'option:

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

Je suppose que c'est pas terrible, mais il semble qu'il devrait y avoir une meilleure façon.

InformationsquelleAutor Skilldrick | 2011-07-14