我试图使用fingerprintjs2 javascript库来获取浏览器指纹。Javascript中函数参数的返回值
下面的代码工作正常:
new Fingerprint2().get(function (result) {
var output = result;
document.write(output);
});
不过,我想设置此块的变量外,稍后用于例如:
var output;
new Fingerprint2().get(function (result) {
output = result;
});
document.write(output);
但在这种情况下,我得到输出:
undefined
我猜这是与范围有关,所以有什么办法来设置变量在t他外部的范围,还是我需要把这个函数调用内的所有以下代码?
我读过关于获取嵌套函数的值的其他问题,但在这种情况下似乎没有任何工作。
“与范围有关” - 不,这是因为在执行'output = result;'之前调用'document.write(output);' – Igor
它是未定义的,因为'document.write(output);'回调 –
get调用异步运行,所以''.get()'调用仍在运行时调用'document.write(output)'。 – theClap