Какой объект я создаю здесь? - PullRequest
1 голос
/ 11 февраля 2020

Я вижу много сайтов, пытающихся предотвратить загрязнение области путем создания и заполнения одного объекта. Например:

var $ = {}
$.something = function() {
   ...
};

Но мне интересно узнать о следующей инициализации:

var $ = function() {
    // Something
}
$.something_two = function...

Есть ли какая-либо разница между этими двумя и инициализирует ли второй код экземпляр класса при каждом вызове?

1 Ответ

2 голосов
/ 11 февраля 2020

В JavaScript все значения, кроме примитивов, являются объектами.

Запустил собственную версию вашего кода, чтобы помочь продемонстрировать:

enter image description here

Также обратите внимание на типы созданных объектов. В вашем первом примере $ - это object, который содержит функцию (и). Во втором * $ - это функция (объект) со свойством, которое также является функцией:

enter image description here

Любой из вариантов будет идеальным для предотвращения загрязнение области, первый пример наиболее соответствует стандартам создания объектов.

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