Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый Сегодня, 15:17
Аспирант
Отправить личное сообщение для provigator Посмотреть профиль Найти все сообщения от provigator
 
Регистрация: 20.01.2017
Сообщений: 33

оптимизация кода javaScript
здравствуйте
я рисую в канвасе:
canvas=document.getElementById("canvas"); c=canvas.getContext("2d")
c.clearRect(0, 0, 1400, 150); c.beginPath(); c.moveTo(0, 0); c.lineTo(0, 100); c.stroke()
чтобы обращаться к процедурам рисования всегда приходится писать имя канваса c.
можно как-то сделать канвас с. "активным" чтобы рисовать без обращения к имени с. ??
clearRect(0, 0, 1400, 150); beginPath(); moveTo(0, 0); lineTo(100, 100); stroke()

Последний раз редактировалось provigator, Сегодня в 15:53.
Ответить с цитированием
  #2 (permalink)  
Старый Сегодня, 16:38
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,609

Можно, но не нужно. Никто вас не поблагодарит.

Вариант 1(deprecated, не работает в strict mode):
with(c) {
  clearRect(0, 0, 1400, 150); 
  beginPath(); 
  moveTo(0, 0); 
  lineTo(100, 100); 
  stroke()
}


Вариант 2(без возможности присвоения, типа fillColor='#xxx', только c.fillColor='#xxx'):
function bindProxy(obj) {
  return new Proxy(obj, {
    get(target, key, r) {
      const value = Reflect.get(target, key, r);
      if (typeof value === 'function')
        return value.bind(target);
      return value;
    }
  })
}


const { clearRect, beginPath, moveTo, lineTo, stroke } = bindProxy(c);

clearRect(0, 0, 1400, 150); 
beginPath(); 
moveTo(0, 0); 
lineTo(100, 100); 
stroke()


Если очень хочется, то лучше воспользоваться вспомогательный библиотекой для рисования, коих мнжество на любой вкус. Плюсом будут всякие иные удобности.
__________________
29375, 35

Последний раз редактировалось Aetae, Сегодня в 16:47.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация кода Alexander Belov jQuery 10 01.04.2016 21:46
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Оптимизация JavaScript в 10-20 раз, фантастика? А вот нет!! m4gz Общие вопросы Javascript 19 26.03.2012 16:19
Сравнительное тестирование производительности JavaScript кода c0deMaster Библиотеки/Тулкиты/Фреймворки 3 17.05.2011 15:11
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40