accesseurs de propriété javascript

En Javascript, il semble que l'aide d'accesseurs de propriété n'est pas du tout commun (contrairement à d'autres langages à objets comme Java par exemple).

Si j'ai un Person objet avec un nom, définie comme

function Person(name) {
   this.name = name;
}

Le nom d'une personne ne va pas changer, mais je ne veux pas être en mesure d'accéder en cas de besoin, afin que je puisse faire quelque chose comme:

function Person(name) {
   var name = name;
   this.getName = function() {
      return name;
   }
}

Même dans un langage dynamique, je pense que les principes de l'utilisation des getters et setters s'appliquent de la même manière qu'aux langages à objets à typage statique (par exemple, l'encapsulation, l'ajout d'une validation, en limitant l'accès, etc)

Cette question peut se ferment, comme subjectif, mais je suis curieux de savoir pourquoi ce problème n'apparaît pas plus souvent (par exemple, les développeurs Java deviendrais folle si tout était public).

Est-il un "standard" de la façon de le faire en javascript? J'ai vu Object.definePropertymais pas tous les navigateurs.

source d'informationauteur Jeff Storey