Добавление настраиваемых свойств к функции

Поиск подходящего ответа оказался трудным из-за существования многих других проблем, связанных с моими ключевыми словами, поэтому я спрошу об этом здесь.

Как мы знаем, функции в javascript являются объектами и имеют свои собственные свойства и методы (точнее, функции, унаследованные от Function.prototype).

Я рассматривал возможность добавления пользовательских свойств для одной функции (метода), давайте пропустим вопрос «почему?». часть и сразу переходите к коду:

var something = {
    myMethod: function () {
        if (something.myMethod.someProperty === undefined) {
            something.myMethod.someProperty = "test";
        }
        console.log(something.myMethod);
    }
}

При проверке с помощью проводника DOM Firebug свойство определяется, как и ожидалось. Однако, поскольку я не считаю себя экспертом по javascript, у меня возникают следующие вопросы:

  1. Можно ли считать этот метод «правильным» и соответствующим стандартам? Он работает в Firefox, но многие вещи работают должным образом в веб-браузерах и ни в коем случае не являются стандартами.
  2. Является ли такое изменение объектов путем добавления к ним новых свойств хорошей практикой?
52
задан John Slegers 17 February 2016 в 07:17
поделиться