Rozwiązanie z http://davidwalsh.name/unwrapping-jsonp. Przydaje się do korzystania z JSON-P bez zanieczyszczania obiektu globalnego zmiennymi.
//ciało f-cji/ ukryty obiekt
var someHiddenData = 'foo({key: \'keyValue\'})';
//konstrtukcja f-cji
var f = new Function('foo', someHiddenData); //<-- zwróć uwagę na nazwę argumentu, który stanie się callbackiem zdefiniowanym w ciele f-cji - someHiddenData
window.f; // function anonymous(foo) {
// foo({key: 'keyValue'})
// }
//zmienna, do której wyeksportujemy wartość klucza
var recievedHiddenData;
f(function(args) {
recievedHiddenData = args.key;
});
recievedHiddenData; //'keyValue'