Kotlin JavaScript反射

目前,JavaScript 不支持完整的 Kotlin 反射 API。唯一支持的該 API 部分
::class 語法,它允許你引用一個實例的類或者與給定類型相對應的類。
一個 ::class 表達式的值是一個只能支持 simpleName
isInstance 成員
的精簡版 KClass 實現。

除此之外,你可以使用 KClass.js 訪問
JsClass 類對應的實例。
JsClass 實例本身就是對構造函數的引用。
這可以用於與期望構造函數的引用的 JS 函數進行互操作。

示例:

class A
class B
class C

inline fun <reified T> foo() {
    println(T::class.simpleName)
}

val a = A()
println(a::class.simpleName)  // 獲取一個實例的類;輸出「A」
println(B::class.simpleName)  // 獲取一個類型的類;輸出「B」
println(B::class.js.name)     // 輸出「B」
foo<C>()                      // 輸出「C」