Почему мы присваиваем значения аргументам в коде, когда они будут меняться в зависимости от ввода пользователя?

Я в процессе изучения javascript.

Кажется, я что-то не понимаю. Как я узнал, мне сказали подставлять значения для аргументов следующим образом:

function sayThanks(name) {
  console.info('Thank you for your purchase '+ name +'! We appreciate your business.');
}

sayThanks('Cole');

Это, очевидно, выведет оператор на консоль с аргументом «Коул».

Но зачем нам назначать «Коул» в качестве аргумента, когда будет несколько пользователей с разными именами? Вы бы создали совершенно другую функцию, которая вставляет имя человека в качестве аргумента?

Обычно вы пишете функцию для выполнения определенной задачи любое количество раз и в любое время с разными входными данными. В приведенном выше примере вы написали функцию «saythans», чтобы напечатать данный ввод в консоли. Таким образом, вы можете вызывать эту функцию с любым вводом (аргументом), который является строкой.

Murali Nepalli 12.03.2019 00:16
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
34
2

Ответы 2

Нет, вы просто снова вызов функцию с новым аргументом, нет необходимости снова переопределить функцию:

function sayThanks(name) {
  console.info('Thank you for your purchase ' + name + '! We appreciate your business.');
}

sayThanks('Cole');
sayThanks('John');
sayThanks('Foo');

В этом есть смысл. Но как вы можете вызвать функцию для каждого имени человека, который совершает покупку на этом «сайте»?

Hunter Zetsche 12.03.2019 00:10

Невозможно сказать, не зная точного кода сайта, но, возможно, при совершении покупки получить имя покупателя, а затем вызвать функцию с этим именем.

Snow 12.03.2019 00:24

Если я могу предположить природу вашего непонимания, похоже, вы не приписываете функции sayThanks способность принимать более одного отдельного аргумента; в данном случае «Коул». Это означает, что вы думаете, что вы не можете впоследствии вызвать sayThanks('John'). Что вы вполне можете.

Думайте о sayThanks как о шаблон действия. Аргументы — это способ вставки информации (в вашем случае имени) в этот шаблон. Затем это позволяет использовать шаблон несколько раз с информацией разные (аргументы).

Спасибо за ваш вклад. Я понимаю, что впоследствии я могу вызывать saythanks() столько раз, сколько захочу. Вот что я пытаюсь понять - возьмем, к примеру, этот пример. Случайный человек, имени которого мы не знаем, заходит на наш «сайт» и покупает один из наших товаров. После того, как указанный человек покупает продукт, наш код доставляет сообщение с благодарностью, адаптированное к имени покупателя. Но мы не знаем имени покупателя... так что, в конечном счете, мой вопрос: зачем нам сотни раз вызывать saythanks() с разными аргументами, надеясь, что имя пользователя является одним из наших аргументов?

Hunter Zetsche 12.03.2019 07:07

Ты не станешь. Точно так же, как вы не попытаетесь случайно угадать чье-то имя при первой встрече. Вы спрашиваете имя человека, запоминаете его, а затем повторяете, когда это уместно. В контексте веб-сайта, очевидно, вам нужно будет запросить имя пользователя в какой-то момент и записать его (возможно, в файле cookie, если вы не просите их войти в систему). На практике, однако, очень маловероятно, что вы не знаете имя покупателя. Цифровые покупки обычно предполагают авторизацию, вы почти наверняка узнаете их имя во время взаимодействия.

Paul Parker 12.03.2019 14:36

Другие вопросы по теме