Bonjour à tous,
Voici mon problème. J'ai un fichier PHP qui fait une requete MySQL sur une base de données, et me "print" le résultat encodé en JSON. Je récupère ce résultat dans un script JavaScript via une requête Ajax que je JSON.parse(). Je me retrouve avec un tableau d'objets anonymes, ce qui je suppose est normal. Ca ressemble à peu près à ça :
[{"id":"1","name":"Name1","phone":"36892252","mobile":"0","lat":"-44.86687","lon":"170.9088789"},{"id":"2","name":"Name2","phone":"3268266","mobile":"272424877","lat":"-40.3137859","lon":"175.7596243"}]
Mon but désormais est d'ajouter des méthodes à ces objets, mais je ne sais pas du tout comment m'y prendre. Ma première et seule tentative a été de passer par le prototype du premier objet de ce tableau, mais c'est un échec cuisant. Voici le code JS :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| xhr.addEventListener('readystatechange', function() {
if (xhr.readyState === 4 && xhr.status === 200) {
response = JSON.parse(xhr.responseText);
response[0].prototype.testFunction() = function() {
console.log("OK");
}
for (var i = 0 ; i < response.length ; i++) {
testFunction();
}
}
}, false); |
La console me renvoie "Uncaught TypeError : Cannot read property 'testFunction' of undefined".
Pourtant response[0] fait bien référence à un objet, que je peux afficher sans problème avec console.log(), et ma boucle for parvient sans problème à parcourir mon tableau d'objets. Mieux : typeof response ET typeof response[0] me donnent tous deux la réponse attendue : object ; mais typeof response[0].prototype me répond "undefined". Dois-je conclure qu'un objet anonyme n'a pas de prototype ? Comment je peux donc faire pour rajouter une méthode à tous les objets que me renvoie ma requête AJAX ?
Merci de vos lumières...
Partager