我似乎无法访问调用函数 - myfunction在被调用函数method2中定义的param。知道我做错了什么。我有一种感觉,我磕磕绊绊,我不确定。
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 ??
}
答案 0 :(得分:2)
因为你声明的函数参数中有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 on
没有三个参数),它被设置为undefined