trait JSApp extends AnyRef
Old-style base class for top-level, entry point main objects.
JSApp provides two services to an object Foo
that extends it. These
two services are replaced by two different features, starting with Scala.js
0.6.18.
Discoverability by sbt as main object
Since Scala.js 0.6.18, the sbt plugin can recognize "standard" main
methods of the form
def main(args: Array[String]): Unit = ...
in objects, even if they do not extend JSApp
. Use such a main method to
replace JSApp in the context of discoverability by sbt.
To enable it as main method, make sure you also set
scalaJSUseMainModuleInitializer := true
in your project settings.
Automatic export to JavaScript
Given
package bar object Foo extends js.JSApp { def main(): Unit = println("Hello world!") }
the object Foo
and its main
method are automatically exported such that
JavaScript code can call
bar.Foo().main();
To achieve exactly the same behavior without JSApp, define Foo
as
package bar object Foo { @JSExportTopLevel("bar.Foo") protected def getInstance(): this.type = this @JSExport def main(): Unit = println("Hello world!") }
Alternatively, you can define it as
package bar object Foo { @JSExportTopLevel("bar.Foo.main") def main(): Unit = println("Hello world!") }
but in that case, the JavaScript code will have to be changed to
bar.Foo.main()
- Annotations
- @deprecated @JSExportDescendentObjects()
- Deprecated
(Since version 0.6.20) Consult the Scaladoc of js.JSApp for migration tips.
- Alphabetic
- By Inheritance
- JSApp
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Concrete Value Members
- final def !=(arg0: scala.Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (JSApp, B)
- final def ==(arg0: scala.Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def ensuring(cond: (JSApp) => Boolean, msg: => scala.Any): JSApp
- def ensuring(cond: (JSApp) => Boolean): JSApp
- def ensuring(cond: Boolean, msg: => scala.Any): JSApp
- def ensuring(cond: Boolean): JSApp
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def formatted(fmtstr: String): String
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
Deprecated Value Members
- def →[B](y: B): (JSApp, B)
- Implicit
- This member is added by an implicit conversion from JSApp toArrowAssoc[JSApp] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.