sólo estoy aprendiendo sobre cómo organizar mejor mi código Javascript, y que tenía una pregunta con respecto a esta pequeña pieza de código que he escrito:Cómo llamar a un método en un objeto de javascript
var reportsControllerIndex = {
plotMapPoints: function(data) {
//plots points
},
drawMap: function() {
$.getJSON('/reports.json', function(data) {
reportsControllerIndex.plotMapPoints(data);
});
},
run: function() {
reportsControllerIndex.drawMap();
}
};
La pregunta es con respecto a llamar a otra función de reportsControllerIndex desde dentro del objeto reportsControllerIndex. Primero probé la siguiente pieza de código para la función de ejecución:
run: function() {
this.drawMap();
}
que funcionó a la perfección. Sin embargo, me encontré luego rápidamente haciendo esto para la función drawMap:
drawMap: function() {
$.getJSON('/reports.json', function(data) {
this.plotMapPoints(data);
});
}
no funciona, ya que "esto" se refieren ahora a la función de devolución de llamada de la llamada getJSON.
Mi solución fue simplemente colocar reportsControllerIndex en frente de todos los métodos que deseo llamar, pero tenía curiosidad: ¿hay una forma más relativa de llamar funciones dentro de un objeto general como este (al igual que lo haría con una clase en un idioma OO estándar)? ¿O estoy obligado a hacerlo como lo estoy haciendo ahora, simplemente llamando a los métodos a través del nombre del objeto?
Ahh, que hace mucho sentido, gracias! ¿Diría que, en general, esta práctica se utiliza en más código de JavaScript que la sugerencia de Josiah a continuación? Me gusta más la idea de usar "yo" solo para mi propia mentalidad de OO, pero prefiero seguir las prácticas estándar en el mundo JS donde puedo. – joeellis
@japancheese - No creo que haya una convención, así que debes usar lo que quieras. Solo recuerde mantener el nombre razonable. – ChaosPandion