ol.control.Control.call 是什么意思?

what is ol.control.Control.call means?

下面的代码片段(ol.control.Control.call)是什么意思?我正在使用 openlayer 3 在图层上创建一些按钮。

        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
        });

您的代码片段不完整。应该看起来像:

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基础控件原型,即ol.control.Control。为确保您的自定义控件继承ol基控件原型,需要在您自定义控件的构造函数中调用ol.control.Control的构造函数,应用于您的自定义控件。在 javascript 中,您使用 call 方法执行此操作,将 this(代表您正在构建的自定义控件)作为第一个参数传递,以及一些特定于 [=12= 的其他参数]构造函数。

之后,在ol中,调用ol.inherits使自定义控件继承ol.control.Control方法(http://openlayers.org/en/latest/apidoc/ol.html#.inherits)。