хранится в промежуточной переменной, потому что именно так оценивается выражение члена с вложенным выражением вызова.
тим, у меня есть два класса ES6, как это:
class Base {
static something() {
console.log(this);
}
}
class Derived extends Base {
}
И тогда я звоню так:
Derived.something();
Обратите внимание, что я делаю вызов статического метода, определенного насупер класс через подкласс.
Это делаетне дай мне ошибки. Это печатает
[Function: Derived]
Так что доступthis
внутри статического метода, похоже, работает здесь.
Мне нужен общий статический метод для всех подклассов суперкласса, и мне нужно знать, какой подкласс вызывает этот метод.
Теперь мой вопрос, является ли использованиеthis
внутри статический метод является законным. Я знаю, что эти статические методы становятся методами класса, и, следовательно,this
будет естественно указывать на объект класса, к которому они обращаются. (Объект класса является конструктором.)
Но я не могу найти какой-либо определенный ресурс, который утверждает, что это разрешено спецификацией ES.
Этот выглядит как хорошее введение в классы ES6, но не говорит оthis
с участиемstatic
.