Сообщение от Начинающий-Js-кодер
|
то есть имя метода совпадает с именем функции этого метода.
|
На самом деле это статический вложенный класс. Обычно класс называют с большой буквы, а метод с маленькой, иначе можно перепутать статический вложенный класс со статическим методом класса.
Сообщение от Начинающий-Js-кодер
|
То есть в javascript нет возможности при исполнении такой строки new MyClass.Module1 вызвать именно конструктор new MyClass.Module1 а не MyClass и его метод Module1?
|
Вот пример статического вложенного класса и статического метода и их всевозможных вызовов... вызовы происходят в порядке чисел alert
function X() {alert(1)}
X.prototype = {
y: function() {alert(2)}
};
X.y = function() {alert(3)};
X.Y = function Y() {alert(4)}
X.Y.prototype = {
y: function() {alert(5)}
};
X.Y.y = function() {alert(6)};
new X(); // или new X
new X().y();
X.y();
new X.Y(); // или new X.Y
new X.Y().y();
X.Y.y();
Вот тоже самое, но только с синтаксисом класса... Здесь трудно перепутать вложенный класс со статичным методом класса.
class X {
constructor(){alert(1)}
y(){alert(2)}
static y(){alert(3)}
}
X.Y = class Y {
constructor(){alert(4)}
y(){alert(5)}
static y(){alert(6)}
};
new X(); // или new X
new X().y();
X.y();
new X.Y(); // или new X.Y
new X.Y().y();
X.Y.y();
Синтаксис класса является более предпочтительным в языке программирования JavaScript.