主要是在jsonp回调的时候会用到,对于一个有时序要求的jsonp回调函数,我需要从函数名里知道它到底是哪一个请求的回调,比如
var pos = 0;
setInterval(function () {
var script = document.createElement('script');
script.src = 'http://example.com/xxx.jsonp?callback=callback_' + pos;
window['callback_' + pos] = function (o) {
....
};
document.body.appendChild(script);
pos ++;
}, 10000);我需要在window['callback_' + pos]的函数体里知道,我现在回调的是哪一个pos传过来的结果。js能知道当前定义的函数名吗,或者调用它时用到的函数名。
function func_know_father(father) { return function () { alert(father); } } a = func_know_father("a"); a(); b = func_know_father("b"); b(); //--你大概可以这么用-- function jsonp_func(pos){ return function (o) { //do sth. //access pos }; } setInterval(function() { //... window['callback_' + pos] = jsonp_func(pos); });用闭包把需要的变量绑上去就行了。