#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
ключевые слова с тем же эффектом.