Всем привет!
Попал в тупик!
Есть такая функция, которая лежит в отдельном модуле:
(function () {
var getRandomColor = function (colors) {
return colors[Math.floor(colors.length * Math.random())];
};
var rgbToHex = function (rgb) {
rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
return (rgb && rgb.length === 4) ? '#' +
('0' + parseInt(rgb[1], 10).toString(16)).slice(-2) +
('0' + parseInt(rgb[2], 10).toString(16)).slice(-2) +
('0' + parseInt(rgb[3], 10).toString(16)).slice(-2) : '';
};
window.colorize = function (el, colors, input, currentColor) {
el.addEventListener('click', function () {
var color = getRandomColor(colors);
if (el.tagName.toLowerCase() === 'div') {
el.style.backgroundColor = color;
input.value = rgbToHex(el.style.backgroundColor);
} else {
el.style.fill = color;
input.value = color;
}
currentColor = color;
});
};
})();
Мне нужно перезаписать переменные в другом модуле, в котором я её вызываю. Вот в этом:
(function () {
var wizardCoat = document.querySelector('.wizard-coat');
var wizardEye = document.querySelector('.wizard-eyes');
var coatColor;
var eyesColor;
window.colorize(wizardCoat, window.wizardData.coatColorsList, document.querySelector('input[name = coat-color]'), coatColor);
window.colorize(wizardEye, window.wizardData.eyesColorslist, document.querySelector('input[name = eyes-color]'), eyesColor);
})();
Как вы поняли, я попытался наивно добавить четвертый аргумент к функции colorize, но это не помогает. Как достать цвет и перезаписать переменные coatColor, eyesColor и присвоить им текущий цвет?