繁体   English   中英

可以回调函数访问父函数变量

[英]can callback functions access parent function variables

我有一个load(callback)函数,它将一个回调函数作为参数。 此回调函数可以访问其父函数中存在的变量,即load()

(function load(callback) 
{                
    return $.get("../somepage.aspx", {data:data},  function (response, status, xhr){   
        var x = 10; 
        if(typeof callback === 'function') { callback(); }
    }
})(done);

var done = function(){
  //do something with x here
  alert(x);
}

您无法按自己的意愿访问x因为x超出了done函数的范围

您需要将x传递给回调:

(function load(callback) 
{                
    return $.get("../somepage.aspx", {data:data},  function (response, status, xhr){   
        var x = 10; 
        if(typeof callback === 'function') { callback(x); }
    }
})(done);

var done = function(x){
  //do something with x here
  alert(x);
}

怀疑这是您想要的,但是我在暗中摸索着看问题中的代码有严重的语法问题(即done不是父母的child )。

不,不是因为回调的作用域完全在调用作用域之外。 在回调中传递x作为参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM