Ваш фрагмент кода является неполным. Является ли должен выглядеть следующим образом:
var MyCustomControl = function(opt_options) {
var options = opt_options || {};
var element = document.createElement('div');
element.className = 'ol-unselectable ol-mycontrol';
element.appendChild(drawPolygon);
ol.control.Control.call(this, {
element: element,
target: options.target
});
};
ol.inherits(MyCustomControl, ol.control.Control);
MyCustomControl
является конструктор пользовательского элемента управления, который должен наследовать прототип управления ола базы, которая ol.control.Control
. Чтобы гарантировать, что ваш пользовательский элемент управления наследует прототип базового управления ol, необходимо вызвать конструктор ol.control.Control
в конструкторе пользовательского элемента управления, применяемого к вашему пользовательскому элементу управления. В javascript вы делаете это с использованием метода call
, передавая this
(которые представляют собой настраиваемый элемент управления, который вы создаете) в качестве первого аргумента, и некоторые другие аргументы, специфичные для конструктора ol.control.Control
.
После этого в ol вы вызываете ol.inherits
, чтобы сделать свой собственный контроль наследованием ol.control.Control
методов (http://openlayers.org/en/latest/apidoc/ol.html#.inherits).
Это означает «получить доступ к свойству' control' на переменной 'ol'. Затем получить доступ к свойству' Control' в результате, возвращенном на предыдущем шаге, затем получить доступ к свойству 'call' на результат, возвращенный на предыдущем шаге. это значение как функция, передающее значение 'this' и объект в качестве аргументов.". –