zooks
@zooks
Frontend

Как передать дефолтный параметр-объект функции в JavaScript?

Передаем ширину и высоту, если они не заданы, то взять из объекта контекста.
width = context.width, height = context.height

let canvas = document.getElementById('mycanvas'),
    ctx = canvas.getContext('2d');

    let drawGrid = (context, width = context.width, height = context.height) => {
        for (let x = 0.5; x < width; x += 10) {
            context.moveTo(x, 0);
            context.lineTo(x, height);
        }

        for (let y = 0.5; y < height; y += 10) {
            context.moveTo(0, y);
            context.lineTo(width, y);
        }
    }

        drawGrid(ctx); // чтобы можно было передать только один объект контекста
        ctx.lineWidth = 1;
        ctx.strokeStyle = '#eee';
        ctx.stroke();
  • Вопрос задан
  • 185 просмотров
Решения вопроса 2
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
А почему не так:
let drawGrid = (context) => {
        const width = context.width
        const height = context.height
        for (let x = 0.5; x < width; x += 10) {
            context.moveTo(x, 0);
            context.lineTo(x, height);
        }

        for (var y = 0.5; y < height; y += 10) {
            context.moveTo(0, y);
            context.lineTo(width, y);
        }
    }
Ответ написан
zooks
@zooks Автор вопроса
Frontend
Параметр передаётся правильно, ошибка была в неправильном объекте:
width = context.canvas.width, height = context.canvas.height
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы