您好,匿名用户
随意问技术百科期待您的加入

在javascript的函数里能否获取到这个函数的名字

0 投票

主要是在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能知道当前定义的函数名吗,或者调用它时用到的函数名。

用户头像 提问 2013年 9月23日 @ Evelynn 上等兵 (244 威望)
分享到:

1个回答

+1 投票
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);
});

用闭包把需要的变量绑上去就行了。

用户头像 回复 2013年 9月23日 @ Heimerdinger 上等兵 (311 威望)
提一个问题:

相关问题

0 投票
1 回复 27 阅读
用户头像 提问 2012年 12月1日 @ Virgo 上等兵 (284 威望)
0 投票
1 回复 36 阅读
0 投票
1 回复 41 阅读
0 投票
1 回复 50 阅读
0 投票
1 回复 32 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...