Javascript ';标记';和';信息窗口&x27;下面代码中的实例?
我是JavaScriptNoob,但我最熟悉Java。我不明白的是,为什么实例不是这样写的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({
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发送它们,这非常有用。好的,明白了。我知道骆驼案,你第一次回答了我的问题。我的大脑被编程狂潮炸了哈哈。