繁体   English   中英

JavaScript语法错误仅适用于Visual Studio

[英]JavaScript syntax error only for Visual Studio

由于某种原因,以下JS声明会在Visual Studio中导致语法错误,并且也无法在Windows Phone浏览器中执行,但是对于其他IDE(例如NetBeans)而言,这是完全可以的。

该函数来自Windy API Leaflet插件 Hello World示例,语法错误位于注释行中:

function initWindyMap(lat, lon, key, particlesAnim) {
    const options = {
        key: key,
        lat: lat,
        lon: lon,
        verbose: false,
        zoom: 6
    };
    windyInit(options, windyAPI => { 
        const {overlays, store, map} = windyAPI; /* syntax error on this line */
        store.set('lang', 'es');
        store.set('englishLabels', true);
        store.set('particlesAnim', particlesAnim);
        overlays.wind.setMetric('km/h');
        map.options.minZoom = 6;
        map.options.maxZoom = 6;
        map.dragging.disable();
        map.doubleClickZoom.disable();
        map.scrollWheelZoom.disable();
        L.marker(map.getCenter()).addTo(map);
    });
}

这是Visual Studio IDE的屏幕截图,以获取更多详细信息。

在此处输入图片说明

问题是: 是否有更传统的方法来声明此函数并避免此错误? 当然,这是几分钟前针对Chrome webview 75发布的新JS调整中的有效语法,但是在这种情况下,我需要使用经典的标准JS语法...预先感谢。

问题是: 是否有更传统的方法来声明此函数并避免此错误?

这是一个箭头功能。 自2015年以来,它们一直是标准的JavaScript语法。所有模糊的现代浏览器均支持它们(而不是IE11)。

您可以改用传统函数:

windyInit(options, function(windyAPI) {
    // ...
});

由于您的函数不使用this ,因此您仅需将语法从arrow更改为繁体,就无需做其他任何事情。 (其中一个箭头的功能和传统功能之间的区别是箭头功能关闭了 this ,而不是this一套由他们怎么叫。更多箭头的功能在这里 。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM