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」