Kotlin-488 JavaScriptはKotlinを呼び出します。

2987 ワード

公式文書:http://kotlinlang.org/docs/reference/js-to-kotlin-interop.html
JSプラットフォームでは、kotlinコードはKotlinコンパイラによってJavaScriptクラス/関数/属性に変換されます。したがって、JavaScriptコードでは、自由にコードを呼び出すことができますが、いくつかの注意が必要です。
1.独立JavaScript対象隔離声明(Isolating declarations in a separate JavaScript oject)
          ,Kotlin      (module)  ,          Kotlin  ;
  kotlin    myModule,   JavaScript    myModule    kotlin  :
    // kotlin    myModule
    fun foo() = "Hello"

    //  JavaScript   , myModule kotlin  
    alert(myModule.foo());

 Kotlin  (module)   JavaScript  (module) ,        !
     ,Kotlin         ,   kotlin         JavaScript  ,    :
    // myModule kotlin  ,    JavaScript  
    alert(require('myModule').foo());
2.パッケージ構造(Package structure)
Kotlin        JavaScript,
            ,      JavaScript        ,  :
    // kotlin
    package my.qualified.packagename
    fun foo() = "Hello"

    //  JavaScript   
    alert(myModule.my.qualified.packagename.foo());
3.@ Js Name注解(@Js Name annotation)
      (       ),Kotlin         JavaScript    /   ,
  @JsName  ,    JavaScript    /   ,:
    // kotlin  "kjs"
    class Person(val name: String) {
        fun hello() {
            println("Hello $name!")
        }

        @JsName("helloWithGreeting")
        fun hello(greeting: String) {
            println("$greeting $name!")
        }
    }

    //  JavaScript 
    var person = new kjs.Person("Dmitry");  //     "kjs"
    person.hello();                         //   "Hello Dmitry!"
    person.helloWithGreeting("Servus");     //   "Servus Dmitry!"
    //      @JsName  ,                    ,  hello_61zpoe$

  : 1.Kotlin      external    @JsName    
      2.   external   external ,          @JsName  !

@JsName             (     ),             @JsName,      :
    @JsName("new C()")  //   , new C()          
    external fun newC()
4.JavaScriptでKotlinタイプ(Representing Kotlin types in JavaScript)を表します。
1.Kotlin    (kotlin.Long  )    JavaScript Number
2.kotlin.Char   JavaScript Number,     
3.Kotlin            (kotlin.Long  ),        :
    fun f() {
        val x: Int = 23
        val y: Any = x
        println(y as Float)
    }
4.Kotlin   kotlin.Int, kotlin.Byte, kotlin.Short, kotlin.Char, kotlin.Long     
5.JavaScript  64    ,   kotlin.Long       JavaScript    ,   Kotlin   
6.kotlin.String     JavaScript String
7.kotlin.Any     JavaScript Object ( new Object(), {} )
8.kotlin.Array     JavaScript Array
9.Kotlin   ( List, Set, Map )       JavaScript  
10.kotlin.Throwable     JavaScript Error
11.Kotlin  JavaScript           
12.Kotlin  JavaScript               
:http://www.jianshu.com/p/a377d6284f1c CSDNブログ:http://blog.csdn.net/qq_32115349/articale/details/75808450 GitHubブログ:http://lioil.win/2017/07/22/Kotlin-kotlinInJS.html Codingブログ:http://c.lioil.win/2017/07/22/Kotlin-kotlinInJS.html