我正在尝试将 p 的值传递给警报功能 - 不幸的是,它刚刚出现未定义。我认为问题是因为当该函数被调用时 p 不再存在。如何将 p 传递给该函数并使其保留值?
function B(p,u) {
var foo = {};
foo[u] = function(p) {
alert('visit internal page '+p);
};
$.router(foo);
}
B("about", "!/about");
答案 0 :(得分:3)
将它从参数列表中删除,如下所示:
function B(p,u) {
var foo = {};
foo[u] = function() {
alert('visit internal page '+p);
};
$.router(foo);
}
目前你在内部函数上指定了一个参数p
,除非在调用它时提供它(似乎不是),更多的本地p
变量将是{{1} }。相反,只是不要将其指定为参数,它将使用父作用域中的undefined
。
答案 1 :(得分:1)
问题在于您同时拥有两个 p
个变量。
function B(outer_p, u) { // <- first p
var foo = {};
foo[u] = function(inner_p) { // <- second p
alert('visit internal page '+ outer_p); // depending on what
}; // you want to display here
$.router(foo);
}