scala.js – 在scala类和Dynamic之间进行转换
发布时间:2020-12-16 19:18:52 所属栏目:安全 来源:网络整理
导读:如何从 scala类转换为Dynamic,因此可以调用未提及的 javascript函数? 你如何从Dynamic转换为scala类? 解决方法 如果 Scala类是指 JavaScript类的类型化外观,即扩展js.Object的类/特性,那么您只需使用asInstanceOf进行转换即可.例如: val dateStatic = new
>如何从
scala类转换为Dynamic,因此可以调用未提及的
javascript函数?
>你如何从Dynamic转换为scala类? 解决方法
如果
Scala类是指
JavaScript类的类型化外观,即扩展js.Object的类/特性,那么您只需使用asInstanceOf进行转换即可.例如:
val dateStatic = new js.Date val dateDynamic = dateStatic.asInstanceOf[js.Dynamic] 另一个方向是相同的: val dateStaticAgain = dateDynamic.asInstanceOf[js.Date] 当T延伸js.Any时,.asInstanceOf [T]总是一个无操作(即硬强制转换). 但是,如果Scala类是指一个正确的Scala类(它不是js.Object的子类型),那么基本上你可以做同样的事情.但是只有@ JSExport的成员才能从js.Dynamic界面中看到.例如: class Foo(val x: Int) { def bar(): Int = x*2 @JSExport def foobar(): Int = x+4 } val foo = new Foo(5) val fooDynamic = foo.asInstanceOf[js.Dynamic] println(fooDynamic.foobar()) // OK,prints 9 println(fooDynamic.bar()) // TypeError at runtime (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |