是否可以合并两个 js.Dynamic 对象

Is it possible to combine two js.Dynamic objects

说我有

val obj1 = js.Dynamic.literal(attr1 = "x")
val obj2 = js.Dynamic.literal(attr2 = "y")

并且我想将 obj1 和 obj2 组合成

的 yield 和 object
{attr1 = "x", attr2 = "y"}

js.Dynamic是否有产生这种组合的方法?

目前还没有这样做的方法。 ES6中有Object.assign,IE不支持

我建议在 Scala.js 中重新实现它:

def mergeJSObjects(objs: js.Dynamic*): js.Dynamic = {
  val result = js.Dictionary.empty[Any]
  for (source <- objs) {
    for ((key, value) <- source.asInstanceOf[js.Dictionary[Any]])
      result(key) = value
  }
  result.asInstanceOf[js.Dynamic]
}

现在你可以简单地做

mergeJSObjects(obj1, obj2)