javascript - 获取 jquery ajax 响应中的父函数名称

标签 javascript jquery ajax

arguments.callee.caller.name

我明白这就是你获得 parent 的方式。

function parent() {
    ajax{
        success: function(result) {
            doOnSuccessFunction() {
            }
        }
    }
}

function doOnSuccessFunction() {
    console.log(arguments.callee.caller.name);
}

我希望 doOnSuccessFunction 在输出中记录“parent”,但它记录为空白,因为 success: function() 实际上是父级。有没有办法获得 ajax 调用的父级,我想这确实是个问题。不确定这如何与发挥作用的作用域和嵌套函数一起使用。希望有人已经遇到过这个问题并且可能有解决方案。

编辑:

这是我到目前为止所想出的,以尽可能保持动态。如果还有其他问题,请随时告诉我?

function parent() {
    ajax{
        callback: arguments.callee.name,
        success: function(result) {
            doOnSuccessFunction(callback) {
            }
        }
    }
}

function doOnSuccessFunction(callback) {
    console.log(callback);
}

最佳答案

您在 success 参数中提供的函数是匿名函数。当您调用 parent 函数时,它不会被执行。它稍后执行(可能是异步的)。因此,您无法使用参数真正获得parent。 (如果您尝试,您可能会获得库的内部函数)

您可以在调用时使用参数并给出函数:

function parent() {
    ajax{
        success: function(result) {
            doOnSuccessFunction(parent);
        }
    }
}    

function doOnSuccessFunction(parent) {
    console.log(parent.name);
}

关于javascript - 获取 jquery ajax 响应中的父函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23916684/

相关文章:

javascript - 像这样设置 jQuery UI slider 的样式

php - jQuery Mobile 登录处理程序

javascript - 如何按以 $(this) 开头的类从父级中选择子级

javascript - Electron 在树莓派上不起作用

javascript - JsHint,我可以定位函数定义中所有未使用的参数,而不仅仅是最后一个吗?

javascript - 如何更改给定特定类的所有元素的宽度?

javascript - 使 div 在 5 秒后消失,验证错误消息

jQuery Mobile - 相对链接 - 基本标签错误

javascript - 如何记录跨域 AJAX API 调用的错误?

javascript - JQuery 代码在 jsfiddle 中正常工作,但在浏览器中即使使用 $(window).load(function()) 也不能正常工作