Si usa this
o el nombre de la función depende de cómo se llamará a la función.
El valor de una función this
se establece por la forma en la función se llama o por bind, así que si la función siempre será llamado como método de un objeto adecuado, utilice this
. Pero si se puede llamar de otra manera, o this
solo debe hacer referencia a un objeto en particular, use bind o el nombre del objeto.
p. Ej.dado el ejemplo OP, tenga en cuenta:
var x = user.showName;
x();
En lo anterior, se llama showName
sin establecer su this
, por lo que el valor predeterminado es el objeto global y this.name
dentro de la función es probable que no sea lo que se espera.
Cambiar el nombre de la función no es un problema particularmente oneroso, dada la disponibilidad de funciones de búsqueda y reemplazo razonablemente potentes en los editores de texto.
Por cierto, esta pregunta se hace con frecuencia. No hay una respuesta "correcta", solo consejos sobre cómo tomar decisiones en ciertos casos.
Tenga en cuenta que puede haber otros efectos secundarios con 'this':' user.show_name.call (null); ' – David