2017-12-17 6 views
1

GopherJSを使用しようとしていますが、使用方法に関するドキュメントが見つかりませんでした。その後GopherJSを使用した基本的な「変数値の取得」

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 

は、私が試したものだ

を印刷してきたはずです。

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 

私は間違っていますか?

答えて

1

js.Globalそう思われるようにはしません。

js.Global変数はdocumented asです:

グローバルでは、JavaScriptのグローバルオブジェクト(ブラウザとNode.jsのための "GLOBAL" の "ウィンドウ")を提供します。

これはことを意味します。あなたがしようとしているよう

js.Global.Get("key") 

は、グローバル変数key、ブラウザでwindow.key、またはNode.jsの中GLOBAL.keyにないアクセスしています。

さらに一般的には、標準JSがGopherJSで生成されたコードにアクセスするようにするには、js.Wrapメソッドas documentedを使用する必要があります。

+0

私が探しているコードを教えてください。それは複雑に見えます。 – MCCCS

+1

あなたは何をしようとしているのか分からないので、あなたが探しているコードをあまりうまく与えられません。しかしそれほど複雑ではありません。 – Flimzy

関連する問題