Менее подробное объяснение будет:
Каждый раз, когда вы вызываете функцию, ее параметры содержат значение, которое вы передали или иным образом неопределенное
Другая проблема - это вопрос области видимости ... когда выобъявите customerData с помощью var, и все, что находится внутри ближайшей включающей функции (или глобальной области видимости), может ссылаться на нее. Полезно знать, как управлять областью действия:
var // nearest enclosing function
let // nearest enclosing block
(нет) // родительская область действия
Надеюсь, это помогло