Пишу свой плагин (обертка для FormData) и наткнулся на такой интересный момент, который портит мне определенную ситуацию.
К примеру если мы цепляемся к форме по id, то никакх проблем нет. А вот если у нас на странице несколько форм и нужно повесить плагин по классу возникает проблема.
Кусок реализации, который демонстрирует проблему:
https://jsfiddle.net/034nuojn/
Собственно проблема заключается вот в чем:
Внутри плагина, я обхожу все формы циклом, получаю переданные данные
settings и присваиваю данные каждой форме примерно вот так:
$form.data('formApi', {
targetForm: $form,
settings: settings,
...
});
НО, прежде чем записать эти данные, я делаю определенную манипуляцию с ними. И при этом присваиваю значение в переменную:
var validateFields = settings.validateFields || [];
//Происходят манипуляции с validateFields
И вот штука такая, что при следующей итерации цикла изменения задействованы не в переменной validateFields, а в settings.validateFields. Такое ощущение, что js делает каждую переменную ссылкой.
Как можно этого избежать?