如何使用 GopherJS 生成的 JavaScript 包中的函数?

How to use a function from a JavaScript package produced by GopherJS?

我用 Go 写了一个简单的包,我用 gopherJS 编译了。

然后我通过

将其包含在我的 HTML 中

<script src="./testgopher.js">

已加载,一切正常。但是我不确定如何重用在我自己的包中的一个包中声明的 go 函数 javascript。

我想做的是在另一个脚本标签中

<script> testpkg.Testfunc() </script>

其中testpkg和Testfunc已经用go写好了

我试图查看 window 对象,但看起来该函数并未添加到 window。

如果要从 JavaScript 调用函数,首先必须注册函数。为此,您可以使用 js.Global 变量。

让我们看一个简单的 Go 函数 Hello(),它将 "Hello World!" 文本写入主文档:

import "github.com/gopherjs/gopherjs/js"

func Hello() {
    js.Global.Get("document").Call("write", "Hello World!")
}

然后在你的 Go main() 函数中你可以像这样注册它:

func main() {
    js.Global.Set("Hello", Hello)
}

注册后,"Hello" 标识符将在 JavaScript 中提供给您。由于我们为这个标识符注册了一个 Go 函数值(Hello),它也将是 JavaScript 中的一个函数,你可以像这样简单地调用它:

<script>
    Hello();
</script>