Javascript ';标记';和';信息窗口&x27;下面代码中的实例?

Javascript ';标记';和';信息窗口&x27;下面代码中的实例?,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我是JavaScriptNoob,但我最熟悉Java。我不明白的是,为什么实例不是这样写的 var marker = new Marker({ position:props.coords, map:map, //icon:props.iconImage }); 而不是 var marker = new google.maps.Marker({

我是JavaScriptNoob,但我最熟悉Java。我不明白的是,为什么实例不是这样写的

var marker = new Marker({
                position:props.coords,
                map:map,
                //icon:props.iconImage  
                });
而不是

var marker = new google.maps.Marker({
            position:props.coords,
            map:map,
            //icon:props.iconImage  
            });
var infoWindow = new google.maps.InfoWindow({
                    content:props.content

                });

而不是

var marker = new google.maps.Marker({
            position:props.coords,
            map:map,
            //icon:props.iconImage  
            });
var infoWindow = new google.maps.InfoWindow({
                    content:props.content

                });
这是完整的代码

function addMarker(props){
            var marker = new google.maps.Marker({
            position:props.coords,
            map:map,
            //icon:props.iconImage  
            });

            // Check for customicon
            if(props.iconImage){
                // Set icon image
                marker.setIcon(props.iconImage);
            }

            // Check content
            if(props.content){
                var infoWindow = new google.maps.InfoWindow({
                    content:props.content

                });

                marker.addListener('click', function(){
                    infoWindow.open(map, marker);
                });
            }

        }

我猜是这样的,因为我使用的是API,但我希望更好地理解为什么需要这样做。

您希望使用Marker和InfoWindow作为Java类,这些类将被
导入到您的文件中。Javascript中没有导入(实际上有,但目前浏览器环境中不存在)

无论如何,在Javascript中,一切都是一个对象。您可以将Javascript对象视为java中的映射:它们基本上是键值结构

在您正在使用的谷歌地图库的代码中,定义了一个名为Google的对象。它包含一个称为“贴图”的键,该键又包含一个对象。此对象依次包含google地图库的定义,如
标记
信息窗口

它实际上可能是这样的:

var gooogle = {
  maps: {
    Marker: /* definition of Marker */,
    InfoWindow: /* definition of InfoWindow */,
    // ...
  }       
}

这就是为什么你需要点符号。实际上,您正在访问由导入的库声明的
google
对象的子键。

您希望将Marker和InfoWindow用作文件内部的Java类。Javascript中没有导入(实际上有,但目前浏览器环境中不存在)

无论如何,在Javascript中,一切都是一个对象。您可以将Javascript对象视为java中的映射:它们基本上是键值结构

在您正在使用的谷歌地图库的代码中,定义了一个名为Google的对象。它包含一个称为“贴图”的键,该键又包含一个对象。此对象依次包含google地图库的定义,如
标记
信息窗口

它实际上可能是这样的:

var gooogle = {
  maps: {
    Marker: /* definition of Marker */,
    InfoWindow: /* definition of InfoWindow */,
    // ...
  }       
}

这就是为什么你需要点符号。实际上,您正在访问
google
对象的子键,该子键是由您导入的库声明的。

也许可以尝试
console.log(google.maps)
,在chrome dev中,您会发现Marker和Infowindow是我认为我会找到的方法。但我不明白为什么Marker和InfoWindow在java中像类名一样大写,而以前的一切都不是。也许尝试一下
console.log(google.maps)
,在chrome dev中,你会发现Marker和InfoWindow是它的方法,我想这就是我会找到的。但我不明白为什么Marker和InfoWindow像java中的类名一样大写,而之前的一切都不是。谢谢,话题之外,但你刚才向我解释的只是JSON吗?但为什么只有Marker大写?我没有得到你在第二条评论中提出的问题。Marker不是唯一一个大写的,InfoWindow也是(这称为驼峰大小写)。至于第一个,不,这不是JSON。JSON是用于序列化javascript对象的标准格式(这意味着:将程序的内部对象转换为字符串)。是的,JSON和javascript对象声明看起来是一样的,但用途不同。JSON是一种用于在纯字符串中写入实际javascript对象的格式,例如,如果您想将它们保存到文件或通过HTTP发送它们,这非常有用。好的,明白了。我知道骆驼案,你第一次回答了我的问题。我的大脑被一场编程狂潮炸了哈哈。谢谢,离题了,但你刚才向我解释的只是JSON吗?但为什么只有标记符大写?我没有得到你在第二条评论中提出的问题。Marker不是唯一一个大写的,InfoWindow也是(这称为驼峰大小写)。至于第一个,不,这不是JSON。JSON是用于序列化javascript对象的标准格式(这意味着:将程序的内部对象转换为字符串)。是的,JSON和javascript对象声明看起来是一样的,但用途不同。JSON是一种用于在纯字符串中写入实际javascript对象的格式,例如,如果您想将它们保存到文件或通过HTTP发送它们,这非常有用。好的,明白了。我知道骆驼案,你第一次回答了我的问题。我的大脑被编程狂潮炸了哈哈。