In JavaScript possiamo usare i callback AJAX globali anche all'interno degli oggetti. Vediamo come.
Supponiamo di voler prelevare un album di foto da Flickr. Le API di Flick utilizzano il parametro jsoncallback che accetta come valore il nome di una funzione globale.
Sapendo che globale in JavaScript vuol dire semplicemente trovarsi nello scope dell'oggetto window come sua proprietà, possiamo scrivere:
"use strict";
(function() {
function Flickr() {
this.init();
}
Flickr.prototype = {
init: function() {
this.user = "123456789@ABC";
this.album = "0123456789";
window.getPhotos = this.getPhotos; // Il metodo è ora una funzione globale
this.getJSON();
},
getJSON: function() {
var src = "http://api.flickr.com/services/feeds/photoset.gne?nsid=" + this.user + "&set=" + this.album + "&format=json&jsoncallback=getPhotos";
var script = document.createElement( "script" );
script.src = src;
document.body.appendChild( script );
},
getPhotos: function( data ) {
var limit = 3;
if( data && data.items ) {
// Le nostre foto
}
}
};
document.addEventListener( "DOMContentLoaded", function() {
var flickrFeed = new Flickr();
});
})();