atendedores de propriedade de javascript

Em Javascript, parece que o uso de acessadores de propriedade não é tão comum (ao contrário de outras linguagens OO, como Java, por exemplo).

Se eu tiver umPerson objeto com um nome, definido como

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

O nome de uma pessoa não vai mudar, mas eu quero ser capaz de acessá-la quando necessário, para poder fazer algo como:

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

Mesmo em uma linguagem dinâmica, acho que os princípios de usar getters e setters se aplicam da mesma maneira que os idiomas OO estaticamente tipificados (por exemplo, encapsulamento, adição de validação, restrição de acesso, etc)

Essa questão pode ser encerrada como subjetiva, mas estou curioso para saber por que esse comportamento não aparece com mais frequência (por exemplo, os desenvolvedores Java ficariam loucos se tudo fosse público).

Existe uma maneira "padrão" de fazer isso em javascript? eu tenho vistoObject.defineProperty, mas nem todos os navegadores suportam isso.

questionAnswers(5)

yourAnswerToTheQuestion