Вот кусок кода, который работает как положено (закрашивает выбранные ячейки таблицы цветом):
function renderTour(league, $table, round) {
var schedule = /*массив*/,
home,
away,
$currentCell;
schedule.forEach(function (match) {
home = match[0] + 1;
away = match[1] + 1;
$currentCell = $table.find('tr:eq(' + home + ')>td:eq(' + away + ')');
$currentCell.css('background-color', 'rgba(200, 100, 0, 0.2)');
});
}
Когда пытаюсь вынести код в отдельную функцию, получаю ошибку: "$table is not defined":
function renderTour(league, $table, round) {
var schedule = /*массив*/,
home,
away,
$currentCell;
schedule.forEach(highlight);
}
function highlight(match) {
home = match[0] + 1;
away = match[1] + 1;
$currentCell = $table.find('tr:eq(' + home + ')>td:eq(' + away + ')');
$currentCell.css('background-color', 'rgba(200, 100, 0, 0.2)');
}
В
документации описано, что вторым аргументом можно добавить объект, на который функция будет ссылаться как на this. Однако примера употребления не указано, и я не вполне уверен как этим пользоваться, и вообще, то ли это, что поможет мне решить проблему.