1.- какова цель второго последнего
линия getElements.cache = {};
Это
хранить возвращаемые результаты в массиве?
Это просто инициализация объекта
2.- Если мое предположение в (1) верно, верно
только ловить возвращаемые результаты, потому что,
в разделе «еще» функции,
getElements.cache[name] = results;
Да, он использует метод кэширования, чтобы избежать доступа к DOM.
3.- когда я играл с кодом в
консоль в учебнике, я удалил
линия getElements.cache[name] = results
из раздела "еще", но все же получил
тот же результат, что и когда это было
там, а именно, он сказал мне, что там
было 76 элементов. Что, следовательно,
цель этой линии
getElements.cache[name] = results
если
не нужно ли получать результат?
В действительности нет необходимости в том смысле, что она только заставляет функцию возвращаться быстрее, поскольку доступ к объекту быстрее, чем через DOM.
4.- есть ли какое-либо значение для факта
что в разделе «еще»
функция, порядок строки
getElements.cache[name] = results;
есть
по сравнению с разделом если из
код, где написано results = getElements.cache[name]
В разделе else сначала переменной results
присваивается значение с фактическим результатом, затем результат кэшируется. В разделе then переменной results
присваивается только кэшированное значение. Нет необходимости повторно кэшировать его
5.- наконец, является ли кэш предопределенным
функция в JavaScript? Я не могу найти
это в документации.
Это не предопределено. Он используется как свойство для этой конкретной функции (в JavaScript функции являются объектами первого класса и могут хранить значения в свойствах.
Вот код комментария:
function getElements( name ) {
var results;
if (getElements.cache[name]) {
results = getElements.cache[name]; // Use the cached value
} else {
results = document.getElementsByTagName(name); // Get the desired value
getElements.cache[name] = results; // cache the result
}
return results;
}
getElements.cache = {}; // Initialize the cache