JavaScript не передает значение функции, но функция все еще имеет его - PullRequest
0 голосов
/ 23 января 2019

Я не могу понять, как работает styleFunction (я взял это из этого Openlayers 4 пример ):

var styleFunction = function(feature) {
    return styles[feature.getGeometry().getType()];
};

var vectorSource = new ol.source.Vector({
    features: reader.readFeatures(listaMappe[i].geoJSON,projector)
});

var vectorLayer = new ol.layer.Vector({
    source: vectorSource,
    style: styleFunction
});

В него не передаются никакие параметры (из vectorLayer), но значение feature имеет значение (я думал, что оно должно быть пустым).

Этот вопрос возник из-за необходимости добавить еще один параметр в styleFunction, чтобы я мог передать значение из listaMappe[i].color. (Я пытался изменить свой код просто на function(feature, color), и я не знаю почему, но значение color не пустое, а действительное число ...)

1 Ответ

0 голосов
/ 23 января 2019

функциям передаются аргументы, когда они называются .

vectorLayer ничего не вызывает.

vactorLayer - это переменная, содержащая возвращаемое значениеol.layer.Vector.

styleFunction передается ol.layer.Vector (это код, который вы не включили в свой вопрос, и который, предположительно, написан кем-то другим).Это где-то внутри этой функции, где styleFunction вызывается и передается аргумент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...