我正在尝试使用 GopherJS,但找不到有关如何使用它的文档。
这是 Go 代码:
package main
import (
"github.com/gopherjs/gopherjs/js"
)
func main() {
t := js.Global.Get("key").Int()
println(t)
js.Global.Set("keySet", 4)
}
然后我使用 GopherJS 将其转换为 JS 并粘贴:
JS代码:
var key = 3
// Pasted GopherJS Code
"use strict";
(function() {
...
}).call(this);
// End GopherJS Code
console.log(keySet)
它打印:
0
4
为什么?它应该打印
3
4
这是我尝试过的(更改 Go 代码并重新转换):
func main() {
t := js.Global.Get("key").Float()
println(t)
js.Global.Set("keySet", 4)
}
打印
NaN
4
func main() {
t := js.Global.Get("key").Int64()
println(t)
js.Global.Set("keySet", 4)
}
打印
typ { '$high': 0, '$low': 0, '$val': [Circular] }
4
我做错了什么?
最佳答案
js.Global
并不像您认为的那样。
js.Global
变量是 documented as :
Global gives JavaScript's global object ("window" for browsers and "GLOBAL" for Node.js).
这意味着:
js.Global.Get("key")
正在浏览器中访问 window.key
,或者在 Node.js 中访问 GLOBAL.key
,而不是全局变量 key
,因为你正在尝试做。
更一般地说,如果您希望标准 JS 访问 GopherJS 生成的代码,您应该使用 js.Wrap
方法 as documented .
关于javascript - 基本 "Get Variable Value"使用 GopherJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47854930/