Javascript函数参数的返回值



我正在尝试使用fingerprintjs2 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

我猜这与作用域有关,所以有没有办法在外部作用域中设置变量,或者我是否需要将以下所有代码放在这个函数调用中?

我读过其他关于获得嵌套函数值的问题,但在这种情况下似乎都不起作用。

你不应该这样做。我正在用ES6编写代码。

let Fingerprint2Obj = new Fingerprint2().get(function (result) {
    let obj = {
     output: result
    }
    return obj;
});

你不能在函数外调用var,如果你通过对象或字符串发送它,则使用实例。document . write (Fingerprint2Obj.output);

这不起作用,因为您在异步get返回之前打印输出。

试试这个:

var output;
var callbackFunction = function(result) {
output = result;
document.write(output);
//do whatever you want to do with output inside this function or call another function inside this function. 
}
new Fingerprint2().get(function (result) {
   // you don't know when this will return because its async so you have to code what to do with the variable after it returns;
   callbackFunction(result);
});

相关内容

  • 没有找到相关文章

最新更新