如何在 Scala js 中创建全局 Javascript 变量?

How to create global Javascript variable in Scala js?

我需要在我的 Scala js 中创建全局 JS 变量。 如何做到这一点?

通过门面类型

创建一个扩展 js.GlobalScope:

的对象
object MyGlobal extends js.GlobalScope {
  var globalVar: String
}

然后,直接赋值给它:

MyGlobal.globalVar = "foo"

通过动态界面

js.Dynamic.global.globalVar = "foo"

警告

这两种方法都需要在变量设置为任何值之前执行代码。目前无法在不执行代码的情况下直接导出 Scala.js 中的顶级值(参见 #1381)。

如果要导出 g 快捷方式:

import scala.scalajs.js
import js.Dynamic.{ global => g }
g.myVar = "foo"