@vitalx23
Говнокодер

Как вызвать метод по умолчанию?

Добрый вечер!
Используется следующий код:

var obj = new MyObj();

obj.test()
obj.test().test2();

test() {

	return {
		function () {
			return 'test';
		},

		test2: function () {
			return 'test2';
		},
		test3: function () {
			return 'test3';
		},
		test4: function () {
			return 'test4';
		},

	}
}


Вопрос: как вызвать
function () {
	return 'test';
},


когда используется obj.test() ? Такой вариант не работает, есть какой-нибудь способ сделать это?
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 3
@frf_nn
человек с компом
функция анонимная и доступа к ней нет
стоит задать ей имя или присвоить её какой нибудь переменной
Ответ написан
Комментировать
@cheeck8131
Никак её нельзя вызвать, только если она сама себя вызовет.
Ответ написан
Комментировать
Ну, если быть совсем точным, то в данном конкретном случае браузеры понимающие es2015 интерпретируют первую функцию как object method shorthand, поэтому ее таки можно вызвать самым обычным способом:
function test() {
  return {
    function() { // без пробела понятнее, если развернуть оно  превращается в { function: function() { ... } }
      return 'test';
    },
    ...
  }
}

test().function(); // surprise-surprise

Другое дело, что на осознание этого факта у человека который будет сопровождать ваш код понадобится больше времени, чем на то чтобы найти ваш адрес и доходчиво объяснить почему так делать не стоит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы