JavaScript 反射

目前,JavaScript 不支持完整的 Kotlin 反射 API。唯一支持的该 API 部分::class 语法,它允许你引用一个实例的类或者与给定类型相对应的类。一个 ::class 表达式的值是一个只能支持 simpleNameisInstance 成员的精简版 KClass 实现。

除此之外,你可以使用 KClass.js 访问JsClass 类对应的实例。该 JsClass 实例本身就是对构造函数的引用。这可以用于与期望构造函数的引用的 JS 函数进行互操作。

示例:

  1. class A
  2. class B
  3. class C
  4. inline fun <reified T> foo() {
  5. println(T::class.simpleName)
  6. }
  7. val a = A()
  8. println(a::class.simpleName) // 获取一个实例的类;输出“A
  9. println(B::class.simpleName) // 获取一个类型的类;输出“B
  10. println(B::class.js.name) // 输出“B
  11. foo<C>() // 输出“C”

原文: https://hltj.gitbooks.io/kotlin-reference-chinese/content/txt/js-reflection.html