在jquery ajax响应中获取父函数名称

时间:2014-05-28 16:07:02

标签: javascript jquery ajax

arguments.callee.caller.name

我知道你是如何得到父母的。

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

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

我想要doOnSuccessFunction来记录" parent"在输出中,但它记录为空,因为成功:function()实际上是父。有没有办法得到ajax调用的父亲我猜是真的是问题。不确定这将如何适用于范围发挥作用和嵌套函数。希望有人已经遇到过这种情况并且可能有解决方案。

编辑:

这是我到目前为止所提出的,尽可能保持动态。如果还有别的什么,请随时告诉我们吗?

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

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

2 个答案:

答案 0 :(得分:1)

您在success参数中提供的功能是匿名功能。调用parent函数时不会执行此操作。它稍后执行(也可能是异步执行)。因此,您无法使用parent获得arguments。 (如果你尝试,你可能会得到你的图书馆的内部功能)

您可以使用参数并在拨打电话时提供该功能:

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

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

答案 1 :(得分:0)

你可以使用这样的参数:

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


function doOnSuccessFunction(parent) {
            }