event.initMouseEvent(Сигнатура js-функции event.MouseClickEvent — ночной кошмар, ставший явью. Ни один разработчик в мире никогда сходу не сможет сказать, что обозначает, к примеру, «1» (второй параметр с конца), не заглянув перед этим в документацию.
"click", true, true, window,
123, 101, 202, 101, 202,
true, false, false, false,
1, null);
В некоторых языках программирования имеются инструменты, с помощью которых можно избегать такой каши. Как всем известно, Python, помимо всех остальных своих достоинств, известен благодаря превосходной концепции именованных аргументов, позволяющей объявлять метод с заранее заданными дефолтными значениями аргументов. Используя подобную схему, мы бы вызывали метод initMouseEvent() как-нибудь так:
event.initMouseEvent(И тут же, словно по мановению волшебной палочки, всё вдруг проясняется и нам становится понятно, что обозначает каждый аргумент, передаваемый методу. Но, к сожалению, в настоящее время в JavaScript такой синтаксис невозможен. Именованные аргументы здесь — это фантастика, которой еще очень и очень долго ждать воплощения в реальность. В черновиках следующей версии спецификаций, ES6, есть описания так называемых default parameter values и rest parameters, но нету и намека на именованные параметры, что весьма удручает.
type="click",
canBubble=true,
cancelable=true,
view=window,
detail=123,
screenX=101,
screenY=202,
clientX=101,
clientY=202,
ctrlKey=true,
altKey=false,
shiftKey=false,
metaKey=false,
button=1,
relatedTarget=null);
Комментариев нет:
Отправить комментарий