Гарантируется ли однократное создание экземпляра экспортируемых функций? Например, браузер будет кэшировать их, и каждый объект или функция, вызывающая импортированную функцию, будет вызывать один и тот же ее экземпляр?
Пример:
export function generateIdIncrementer(string) {
let num = 0;
return () =>{
return string+(num += 1);
};
}
export const nextLayerId = generateIdIncrementer('layer-');
Пример использования: file1 и file2 оба импортируют nextLayerId
, и оба файла вызывают его один раз. Ожидаемый результат: file1 получит layer-1
, тогда как file2 получит layer-2
.
Все ли современные браузеры гарантируют, что nextLayerId будет существовать как единственный экземпляр? Есть ли какой-нибудь сценарий ios, в котором этот код потенциально может нарушить предполагаемое поведение?