如何访问JavaScript对象中的属性值

时间:2017-05-16 21:40:44

标签: javascript google-maps-api-3 google-maps-markers javascript-objects

背景

我有两个对象,其中包含图像文件路径。

 var icons = {
            burglary: {
                image: iconBase + "homegardenbusiness.png"
            }

另一个持有类别。

 function point (cat) {

            this.Category= cat;
}

var point = new point("burglary");

我想根据类别访问图标的特定属性。

var icon = icons[point.Category].image;

以下调用的全部功能。

  //Create and add point to google map.
        function addpoints(point) {
            //debugger;

            var pos = { lat: point.Latitude, lng: point.Longitude };
            var icon = icons[point.Category].image;
            var marker = new window.google.maps.Marker({
                position: pos,
                map: map,
                icon: icon,
                clickable: true
            });

问题

我似乎无法使用上述表示法访问图标对象。 我这样做是正确的吗?我得到以下错误。

  

无法获得财产图标'未定义或空引用

3 个答案:

答案 0 :(得分:0)

包含图像的属性是图像而不是图标。

更改

var icon = icons[point.Category].icon;

var icon = icons[point.Category].image;

快速小提琴解决了代码: https://jsfiddle.net/yeshodhan/639zL8oL/

答案 1 :(得分:0)

根据您的示例,您应该引用

var icon = icons[point.Category].image;

var icon = icons[point.Category].icon;

答案 2 :(得分:0)

您可以尝试此代码



var iconBase = "your image base::";

var icons = {
  burglary: {
    image: iconBase + "homegardenbusiness.png"
  }
};

function Point (cat) {
  this.Category = cat;
}

var point = new Point("burglary");

var icon = icons[point.Category].image;
alert(icon);