используйте статический метод из подкласса в javascript

#javascript #class #namespaces #static-methods

Вопрос:

У меня есть суперкласс, который называется API в отдельном файле под названием API.js

 class API {
???
}
 

У меня также есть куча подклассов, каждый из которых находится в отдельном файле ( MySubClassXXX.js ), которые включают в себя ряд статических методов, таких как:

 class MySubClass1  {
     static method1 () {
        return { something }
     }
     static method2 () {
        return { something else }
     }
}
 

Я хотел бы использовать эти методы в своем проекте следующим образом API.MySubClass1.method1()

как я должен импортировать и определять подклассы MySubClass1 в основном классе API

Комментарии:

1. Включают ли они только статические методы?

2. да, они это делают. только статика

3. Тогда вам не следует использовать class es в первую очередь. Используйте объектные литералы. Или экземпляры базового класса, если вы хотите поделиться некоторыми методами и перезаписать другие.

Ответ №1:

Вы можете назначить определение подкласса свойству базового класса. class объявления в Javascript являются первоклассными значениями.

 class API {}

API.MySubClass1 = class {
  static method1() {
    return 'something'
  }
}

console.log(API.MySubClass1.method1()) 

Если вы собираетесь использовать классы только в качестве пространств имен здесь, вы также можете безопасно удалять class и static ключевые слова с тем же эффектом.