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
- All
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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- 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: scala.Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- def formatted(fmtstr: String): String
-
final
def
getClass(): Class[_]
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- def →[B](y: B): (JSApp, B)