首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用GopherJS的基本“获取变量值”

使用GopherJS的基本“获取变量值”
EN

Stack Overflow用户
提问于 2017-12-17 12:05:59
回答 1查看 370关注 0票数 2

我正在尝试使用GopherJS,但是我找不到关于如何使用它的文档。

以下是围棋代码:

代码语言:javascript
运行
复制
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代码:

代码语言:javascript
运行
复制
var key = 3

// Pasted GopherJS Code
"use strict";
(function() {
...
}).call(this);
// End GopherJS Code

console.log(keySet)

它打印:

代码语言:javascript
运行
复制
0
4

为什么?它应该打印出来

代码语言:javascript
运行
复制
3
4

下面是我尝试过的(更改Go代码和重新转换):

代码语言:javascript
运行
复制
func main() {
    t := js.Global.Get("key").Float()
    println(t)
    js.Global.Set("keySet", 4)
}

版画

代码语言:javascript
运行
复制
NaN
4
代码语言:javascript
运行
复制
func main() {
    t := js.Global.Get("key").Int64()
    println(t)
    js.Global.Set("keySet", 4)
}

版画

代码语言:javascript
运行
复制
typ { '$high': 0, '$low': 0, '$val': [Circular] }
4

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-17 16:13:13

js.Global不做你认为它做的事情。

js.Global变量是记录为

Global提供JavaScript的全局对象(浏览器为“窗口”,Node.js为“全局”)。

这意味着:

代码语言:javascript
运行
复制
js.Global.Get("key")

是在浏览器中访问window.key,或者是在Node.js中访问GLOBAL.key,而不是像您正在尝试的那样访问全局变量key

更一般地,如果您希望标准JS访问GopherJS生成的代码,则应该使用js.Wrap方法如文件所示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47854930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档