Я в процессе изучения javascript.
Кажется, я что-то не понимаю. Как я узнал, мне сказали подставлять значения для аргументов следующим образом:
function sayThanks(name) {
console.info('Thank you for your purchase '+ name +'! We appreciate your business.');
}
sayThanks('Cole');
Это, очевидно, выведет оператор на консоль с аргументом «Коул».
Но зачем нам назначать «Коул» в качестве аргумента, когда будет несколько пользователей с разными именами? Вы бы создали совершенно другую функцию, которая вставляет имя человека в качестве аргумента?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Нет, вы просто снова вызов функцию с новым аргументом, нет необходимости снова переопределить функцию:
function sayThanks(name) {
console.info('Thank you for your purchase ' + name + '! We appreciate your business.');
}
sayThanks('Cole');
sayThanks('John');
sayThanks('Foo');В этом есть смысл. Но как вы можете вызвать функцию для каждого имени человека, который совершает покупку на этом «сайте»?
Невозможно сказать, не зная точного кода сайта, но, возможно, при совершении покупки получить имя покупателя, а затем вызвать функцию с этим именем.
Если я могу предположить природу вашего непонимания, похоже, вы не приписываете функции sayThanks способность принимать более одного отдельного аргумента; в данном случае «Коул». Это означает, что вы думаете, что вы не можете впоследствии вызвать sayThanks('John'). Что вы вполне можете.
Думайте о sayThanks как о шаблон действия. Аргументы — это способ вставки информации (в вашем случае имени) в этот шаблон. Затем это позволяет использовать шаблон несколько раз с информацией разные (аргументы).
Спасибо за ваш вклад. Я понимаю, что впоследствии я могу вызывать saythanks() столько раз, сколько захочу. Вот что я пытаюсь понять - возьмем, к примеру, этот пример. Случайный человек, имени которого мы не знаем, заходит на наш «сайт» и покупает один из наших товаров. После того, как указанный человек покупает продукт, наш код доставляет сообщение с благодарностью, адаптированное к имени покупателя. Но мы не знаем имени покупателя... так что, в конечном счете, мой вопрос: зачем нам сотни раз вызывать saythanks() с разными аргументами, надеясь, что имя пользователя является одним из наших аргументов?
Ты не станешь. Точно так же, как вы не попытаетесь случайно угадать чье-то имя при первой встрече. Вы спрашиваете имя человека, запоминаете его, а затем повторяете, когда это уместно. В контексте веб-сайта, очевидно, вам нужно будет запросить имя пользователя в какой-то момент и записать его (возможно, в файле cookie, если вы не просите их войти в систему). На практике, однако, очень маловероятно, что вы не знаете имя покупателя. Цифровые покупки обычно предполагают авторизацию, вы почти наверняка узнаете их имя во время взаимодействия.
Обычно вы пишете функцию для выполнения определенной задачи любое количество раз и в любое время с разными входными данными. В приведенном выше примере вы написали функцию «saythans», чтобы напечатать данный ввод в консоли. Таким образом, вы можете вызывать эту функцию с любым вводом (аргументом), который является строкой.