Spec-Zone.ru › Kotlin 1.4

Рефлексия JavaScript

В настоящее время JavaScript не поддерживает полный API рефлексии Kotlin. Поддерживается только синтаксис ::class, который позволяет ссылаться на класс экземпляра или класс, соответствующий данному типу. Значение выражения ::class — это упрощённая реализация KClass, которая поддерживает только члены simpleName и isInstance.

Кроме того, можно использовать 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)  // Obtains class for an instance; prints "A"
println(B::class.simpleName)  // Obtains class for a type; prints "B"
println(B::class.js.name)     // prints "B"
foo<C>()                      // prints "C"

© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/reference/js-reflection.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API