遇到问题,不知道如何给 ClickSimClick 函数公开的 ClickSimClick 函数参数(它返回具有 2 个值的数组)。
下面的代码表明 crd 在 setTimeout 上未定义。
var crd = plugin().ClickSimMove();
setTimeout("plugin().ClickSimClick(crd[0], crd[1])", 1000);
遇到问题,不知道如何给 ClickSimClick 函数公开的 ClickSimClick 函数参数(它返回具有 2 个值的数组)。
下面的代码表明 crd 在 setTimeout 上未定义。
var crd = plugin().ClickSimMove();
setTimeout("plugin().ClickSimClick(crd[0], crd[1])", 1000);
传递一个函数,而不是一个字符串:
var crd = plugin().ClickSimMove();
setTimeout(function() {
plugin().ClickSimClick(crd[0], crd[1]);
}, 1000);
当您传递一个字符串时,它会像eval
在全局范围内一样被评估,失去对局部变量的所有访问权限。匿名函数允许您引用范围内的任何变量。
var crd = plugin().ClickSimMove();
setTimeout(function(){
plugin().ClickSimClick(crd[0], crd[1]);
}, 1e3);
尽可能避免将字符串发送到setTimeout
/ --setInterval
使用匿名函数。特别是如果您发现自己连接变量来创建该字符串,您可能会很快遇到某种注入或格式错误的组件的麻烦。