Как передавать свой аргумент в функцию? Пишу свой плагин для форм отправки. Возник вопрос, как передавать свой аргумент, как это делается например в методе jquery$('tut selector').each(function(item) { }) Тут автоматом как-то передается аргумент item, который я могу использовать.;(() => { class Validation {
constructor(options) { this.fields = options.fields; this.formElement = document.querySelector(options.formSelector); this._checkRules = { phone: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/, mail: /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/, } } init() { if(Object.prototype.toString.call(this.fields) === '[object Array]') { this.fields.map((item) => { document.querySelector(item.fieldSelector).addEventListener('blur', (e) => { //target - DOM элемент, поле //item.text - Условие, по которому нужно проверять строку или регулярное выражение //item.required - Обязательное ли поле let failCallback = item.onFail ? item.onFail : this.onFail; const target = event.target; if(this.fieldTest(target, item.test, item.required) === false) { failCallback(); } else { onSuccess(); }
Для того чтобы передать свой аргумент в функцию, можно воспользоваться замыканием и использовать стрелочные функции ES6. В вашем случае, вы можете передать аргумент в методе map при обработке массива fields. Также, вы можете передавать аргумент в колбэк функцию addEventListener с помощью замыкания:
Пример передачи своего аргумента в функцию:
this.fields.map((item) => { const customArgument = 'my custom argument'; document.querySelector(item.fieldSelector).addEventListener('blur', (e) => { // здесь вы можете использовать customArgument или другие свои аргументы // ... }); });
Таким образом, вы можете создать и использовать свои собственные аргументы внутри функций и передавать их в нужные методы или колбэк функции.
Для того чтобы передать свой аргумент в функцию, можно воспользоваться замыканием и использовать стрелочные функции ES6. В вашем случае, вы можете передать аргумент в методе map при обработке массива fields. Также, вы можете передавать аргумент в колбэк функцию addEventListener с помощью замыкания:
Пример передачи своего аргумента в функцию:
this.fields.map((item) => {const customArgument = 'my custom argument';
document.querySelector(item.fieldSelector).addEventListener('blur', (e) => {
// здесь вы можете использовать customArgument или другие свои аргументы
// ...
});
});
Таким образом, вы можете создать и использовать свои собственные аргументы внутри функций и передавать их в нужные методы или колбэк функции.