小编jok*_*ade的帖子

限制对象的特征?

有没有办法限制特征,使其只能混合到对象中?例如

trait OnlyForObjects {
  this: ... =>
}

object Foo extends OnlyForObjects  // --> OK

class Bar extends OnlyForObjects   // --> compile error
Run Code Online (Sandbox Code Playgroud)

scala

10
推荐指数
1
解决办法
177
查看次数

如何从Scala.js调用Javascript apply()?

如何apply()从Scala.js代码调用Javascript对象上定义的函数?

显而易见的解决方案不起作用,因为applyScala.JS(?)总是将其编译到其父对象的函数调用中:

var test = {
  apply: function(idx) {...},
  apple: function(idx) {...}
}
Run Code Online (Sandbox Code Playgroud)
trait Test extends js.Object {
  def apple(idx: Int) : Int = ???
  def apply(idx: Int) : Int = ???
}

val test = js.Dynamic.global.test.asInstanceOf[Test]

test.apple(1) // works, of course

test.apply(1) // does not work (seems to be compiled into the call test(1) ?)

js.Dynamic.global.test.apply(1) // does not work either
Run Code Online (Sandbox Code Playgroud)

scala.js

5
推荐指数
1
解决办法
436
查看次数

标签 统计

scala ×1

scala.js ×1