Getters e setters Javascript - problema de recursão
Alguém pode me ajudar a entender o significado do caractere '_' nos setters e getters de javascript. Por exemplo, eu tenho o seguinte código que funciona bem.
var user = {
get name() {
return this._name;
},
set name(value) {
this._name = value;
}
};
var me = user;
me.name = "Rob";
alert(me.name);
Mas se eu remover o sublinhado para que meu código fique com o seguinte, meu código não funcionará e eu recebo um erro no console do navegador informando "RangeError: tamanho máximo da pilha de chamadas excedido".
var user = {
get name() {
return this.name;
},
set name(value) {
this.name = value;
}
};
var me = user;
me.name = "Rob";
alert(me.name);
</script>
Alguém pode me explicar o que o "_" faz nessa situação?