Показать сообщение отдельно
  #11 (permalink)  
Старый 14.01.2019, 21:58
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Начинающий-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.

Последний раз редактировалось Malleys, 14.01.2019 в 22:57.
Ответить с цитированием