cachaito
1/20/2015 - 11:57 PM

Creating new function for JSON-P

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'