Какой правильный термин для этого: «объект JavaScript, полный функций»? - PullRequest
0 голосов
/ 12 ноября 2011

В последнее время я использовал этот тип программирования для группировки логически связанных функций:

FruitMethods = {
    url: "some/path/to/something.durk",
    get: function(data) {$.ajax(url, data)},
    delete: function(something) { some more function stuff....}
}

Вы правильно поняли картинку?Кажется, оно не соответствует определению класса ... или нет?Миксин?Что-то другое?Javascript объект полон функций и, возможно, переменная?JOFOFAMAV?

Мой голос за JOFOFAMAV.

PS: Не стесняйтесь также высказывать свои мысли о том, является ли это хорошей практикой.

Ответы [ 3 ]

3 голосов
/ 12 ноября 2011

Функционально это объект со свойствами.Итак, тогда ваш вопрос становится больше о том, какое общее имя можно было бы назвать.

Поскольку у него нет данных экземпляра и он не выглядит так, как будто он будет создавать новые экземпляры (например, как класс),это больше похоже на namespace, который является просто именованной оболочкой для набора свойств, где свойствами могут быть любые данные или функции.

Объекты пространства имен полезны по нескольким причинам:

  1. Ограничение использования глобального пространства имен верхнего уровня, что снижает вероятность конфликта имен с другими сценариями.
  2. Организационная структура / соглашение для сбора группы связанных данных или функций.
  3. Иерархическая схема, которая упрощает классификацию или организацию методов и / или данных и ссылки на них с помощью простой схемы category.method, такой как Fruit.get()
1 голос
/ 12 ноября 2011

Я бы назвал это пространством имен.

0 голосов
/ 12 ноября 2011

Это форма singleton - которая в основном является объектом без внешнего определения: у вас нет определения «класса», а затем создаются экземпляры этого класса.

Одна вещь, которую нужно знать об этом типе структуры, это то, что все методы объекта являются общедоступными (это может или не может быть проблемой).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...