谷歌地图API不适用于const / let initMap函数,而它适用于var initMap函数

时间:2018-01-13 11:05:32

标签: javascript google-maps

如果initMap函数为letconst,则无效并抛出错误:

Qb {message: "initMap is not a function", name: "InvalidValueError"}

如果我用var替换它,它可以正常工作。那是为什么?

这是我的代码。

<head>
    <meta charset="UTF-8">
    <title>Test</title>
    <script>

        const initMap = function () {//THIS LINE
            // Create a map object and specify the DOM element for display.
            let map = new google.maps.Map(document.getElementById('map'), {
                center: {lat: -34.397, lng: 150.644},
                zoom: 8
            });
        };

    </script>

    <!--map API-->
    <script src="https://maps.googleapis.com/maps/api/js?key=MY_API_HERE&callback=initMap"
            async defer></script>
</head>
<body>
<!--header ends-->
<div class="container">
    <div class="row">
        <div class="map-wrapper">
            <div id="map" style="height: 300px; width: 600px"></div>
        </div>
    </div>
</div>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

这是因为 .fa.fa-check{ visibility: hidden; color:white; padding-top: 8px; padding-left:14px; font-size:15px; } .colors{ cursor:pointer; width:42px; height:30px; margin-right:3px; border-radius:3px; display:inline-block; } .option{display:none;} .option:checked + label span{ visibility: visible; } const变量不会成为let的属性。

  

此声明创建一个常量,其范围可以是声明它的块的全局或局部。与var变量不同,全局常量不会成为窗口对象的属性。

您可以阅读更多相关信息HERE