Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript作用域问题无法在运行时事件中访问变量_Javascript_Scope - Fatal编程技术网

Javascript作用域问题无法在运行时事件中访问变量

Javascript作用域问题无法在运行时事件中访问变量,javascript,scope,Javascript,Scope,我似乎无法访问被调用函数method2中调用函数-myfunction定义的参数。知道我做错了什么吗。我有一种感觉,我正跌跌撞撞地走向终结,我不确定 function myfunction(){ var config = { alpha: 1, beta:2, charlie:3} $(someelement).on('event', function(a,b,config){ //a and b are published establish

我似乎无法访问被调用函数method2中调用函数-myfunction定义的参数。知道我做错了什么吗。我有一种感觉,我正跌跌撞撞地走向终结,我不确定

    function myfunction(){
      var config = { alpha: 1, beta:2, charlie:3}
      $(someelement).on('event', function(a,b,config){
          //a and b are published established params of the event im using
          //config is something im adding
          method2(a, b, config);
      });
    }
    function method2(a,b,c){
      //param c is undefined why ??
    }

因为在声明的函数参数中有
config

$(someelement).on('event', function(a,b,config){
// Here --------------------------------^    
    method2(a, b, config);
});
这会隐藏(隐藏)您在封闭函数中声明的
config
。如果将其删除:

$(someelement).on('event', function(a,b){
// Removed ----------------------------^    
    method2(a, b, config);
});
参数不再阴影(隐藏)变量

问题是该函数的第三个参数也被命名为
config
,当它未被传递时(因为
上的jquery
没有三个参数),它被设置为
未定义的