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/