Javascript作用域问题无法在运行时事件中访问变量
我似乎无法访问被调用函数method2中调用函数-myfunction定义的参数。知道我做错了什么吗。我有一种感觉,我正跌跌撞撞地走向终结,我不确定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
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没有三个参数),它被设置为未定义的