scala.js之是否可以组合两个 js.Dynamic 对象

Demo 阅读:131 2025-06-02 22:19:02 评论:0

说我有

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

我想结合 obj1 和 obj2 来产生和对象
{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) 


标签:Scala
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号