function coolo()
{
var tile1 = -1;
var tile2 = -1;
$(".grid-cell").click(swap);
}
function swap()
{
console.log(tile1)
}
coolo();
当然我会收到 Uncaught ReferenceError: tile1 is not defined
错误 . 我可以通过将变量传递给函数或将变量放在全局范围内来解决它 . 有没有办法让 swap
函数访问 coolo
范围内的变量?我可以访问全局范围内的变量,为什么不呢?我尝试使用 this
关键字,但是 jquery
将 this
分配给已选择的dom元素 . 我不确定使用 this
是否可以在非 jquery
情况下工作 . 如果没有't, I'想了解更多关于如何在javascript中使用作用域的方法 .
3 回答
你想了解范围,这将有效 . 由于你只在
coolo
中使用swap
,所以没有理由不将swap
放在coolo
函数内,因此与tile1的范围相同将它定义为这两个函数之外的全局变量或使用window.title
或将其作为参数传递给第二个函数
您必须将参数传递给该函数,但您可以使它更通用一些