javascript - 基本 "Get Variable Value"使用 GopherJS

标签 javascript variables go gopherjs

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

相关文章:

javascript - Visual Composer 不加载并给出 TypeError : _. template(...).trim is not a function

Javascript:将用户输入分配为变量

javascript - 如何使用 Alexa 编写决策树?

go - 为什么runtime.GC中没有调用atomic.Load加载gcphase?

sql - Golang 中的跨数据库准备语句绑定(bind)(like 和 where in)

javascript - 如何知道浏览器开发工具中损坏源的来源?

javascript - 使用高阶组件进行身份验证时如何延迟检查 redux 存储

javascript - 混合应用程序 : Audio not playing on Android

PHP echo 来自不同服务器上的外部 PHP 文件的变量

string - 奇怪的行为,同时变量与函数的输入和输出相同