Kozack
@Kozack
Thinking about a11y

Как использовать метод из прототипа?

Объясню на примере.
У меня есть функция-конструктор:
function App = function() {};

App.prototype.get = function (param) {
  return !!param;
}

Как видно, непосредственно функция ничего не делает, а ее метод, просто обрабатывает входящий параметр.
Как быть в ситуации, когда нужно вызвать только этот метод?
var a = 5;
new App().get(a);
App.prototype.get(a);

Я так понимаю, что при вызове new App().get(a); сначала запускается тело функции, которая возвращает объект, а потом у этого объекта запускается метод.
А при использовании App.prototype.get(a) метод запускается как независимая функция.
Но в моем случае тело функции не выполняет каких-либо действий. И экземпляр объекта в переменной мне хранить не нужно.

Может есть еще какие-то особенности о которых я не знаю?
Какой-подход считается правильным?
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
SerafimArts
@SerafimArts
Senior Notepad Reader
Вызов метода из прототипа является плохой практикой, т.к. предназначен в первую очередь для инстансов (объектов от) функции. Т.е. считай что это вызов метода, без вызова метода-конструктора класса, что может понадобиться лишь в каких-нибудь юнит-тестовых моках. В таких примерах как у тебя используй статический вариант (если так можно выразиться применительно к JS) - добавляй функцию непосредственно в родителя, а не в его прототип.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы