如何访问此库函数?

时间:2018-03-09 16:00:34

标签: javascript oop

刚刚开始学习JS,并且我正在尝试导入一个库的问题。

开发人员建议如下:

<script>
    window.sodium = {
        onload: function (sodium) {
            let h = sodium.crypto_generichash(64, sodium.from_string('test'));
            console.log(sodium.to_hex(h));
        }
    };
</script>
<script src="sodium.js" async></script>

但是,这仅在页面加载时执行 - 我不能在需要时在页面下方运行功能。就这样:

<script>
var App = new function(myLibrary){

    this.sodium = myLibrary;

    this.example = function () {
        h = this.sodium.crypto_generichash(64, this.sodium.from_string('test'));
        return this.sodium.to_hex(h);
    }

}

var create = new App(window.sodium);
</script>

/...../

<script>console.log(create.example());</script>


<script src="sodium.js" async></script>

我该怎么做?我一直得到错误,如“sodium.crypto_generichash”不是一个功能。或钠没有定义。

1 个答案:

答案 0 :(得分:0)

此代码在加载库之前运行:

<script>
var App = new function(myLibrary){

this.sodium = myLibrary;

this.example = function () {
    h = this.sodium.crypto_generichash(64, 
    this.sodium.from_string('test'));
    return this.sodium.to_hex(h);
  }

}

尝试删除async并更改脚本的顺序。

在window.onload函数中运行代码:

window.onload = function() {
    //your code
}