0

ブラウザのフィンガープリントを取得するために、 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

これはスコープに関連していると推測しているので、変数を外側のスコープに設定する方法はありますか、またはこの関数呼び出し内に次のすべてのコードを配置する必要がありますか?

ネストされた関数の値の取得に関する他の質問を読みましたが、この場合はうまくいかないようです。

4

2 に答える 2

0

それはあなたがすべき方法ではありません。私はES6を使用してコードを書いています。

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

オブジェクトまたは文字列を介して送信する場合は、関数の外で var を呼び出すことはできません。document.write(Fingerprint2Obj.output);

于 2016-08-16T14:10:44.700 に答える