未定义来自不同作用域变量的javascript回调函数 函数coulo() { 变量tile1=-1; var tile2=-1; $(“.grid cell”)。单击(交换); } 函数交换() { console.log(tile1) } coolo();
当然,我会得到一个未定义来自不同作用域变量的javascript回调函数 函数coulo() { 变量tile1=-1; var tile2=-1; $(“.grid cell”)。单击(交换); } 函数交换() { console.log(tile1) } coolo();,javascript,jquery,Javascript,Jquery,当然,我会得到一个未捕获引用错误:tile1未定义错误。我可以通过将变量传递给函数或将变量放入全局范围来修复它。swap函数是否有办法访问coolo范围内的变量?我可以访问全局范围内的变量,为什么不呢?我尝试使用this关键字,但是jquery将this分配给已选择的dom元素。我不确定在非jquery的情况下使用this是否有效。如果没有,我想了解更多关于javascript中作用域的工作原理。您必须向该函数传递一个参数,但可以使其更通用一些 function coolo() { va
未捕获引用错误:tile1未定义错误。我可以通过将变量传递给函数或将变量放入全局范围来修复它。swap
函数是否有办法访问coolo
范围内的变量?我可以访问全局范围内的变量,为什么不呢?我尝试使用this
关键字,但是jquery
将this
分配给已选择的dom元素。我不确定在非jquery
的情况下使用this
是否有效。如果没有,我想了解更多关于javascript中作用域的工作原理。您必须向该函数传递一个参数,但可以使其更通用一些
function coolo()
{
var tile1 = -1;
var tile2 = -1;
$(".grid-cell").click(swap);
}
function swap()
{
console.log(tile1)
}
coolo();
如果您想了解范围,这将起作用。由于您只在coolo
内部使用swap
,因此没有理由不将swap
放在coolo
功能内部,从而与tile1处于相同的范围内
function coolo()
{
var tile1 = -1;
var tile2 = -1;
$(".grid-cell").click(function(){swap(title1)});
}
function swap(title)
{
console.log(tile)
}
coolo();
将其定义为这两个函数之外的全局变量或使用window.title
function coolo() {
var tile1 = -1;
var tile2 = -1;
var swap = function () {
console.log(tile1)
}
$(".grid-cell").click(swap);
}
coolo();
或者将其作为参数传递给第二个函数
var title
function A(){
}
function B(){
}
功能交换(tile1)
。单击(swap.bind(null,tile1))
您应该查找一些。您应该阅读JavaScript。是的!我以前看到过那个链接,但这就是我一直在寻找的链接!非常感谢。
function A(){
B(title);
}