【问题标题】:How to declare an object and assign its properties later如何声明一个对象并稍后分配它的属性
【发布时间】:2019-05-28 12:49:13
【问题描述】:

我有下面的例子,它创建了一个谷歌地图矩形对象。我只想声明对象,例如“rectangle = new google.maps.Rectangle()”,然后访问其属性,例如“rectangle.bounds”,但似乎这不起作用

rectangle = new google.maps.Rectangle({
    bounds: bounds,
    editable: true,
    draggable: true
});

【问题讨论】:

  • 您要解决的真正问题是什么?

标签: javascript object javascript-objects


【解决方案1】:

bounds 不是属性,而是构造函数的参数。 CMIIW。

根据documentation,可以通过getBounds()方法获取bounds属性

这应该可行。我没试过。 var bounds = rectangle.getBounds()

【讨论】:

    【解决方案2】:

    根据docs,Rectangle 类接受一个类型为 google.maps.RectangleOptions 的可选参数,该对象实际上包含边界、可编辑等属性。 p>

    如果你像这样实例化一个新的 Rectangle 实例

    rectangle = new google.maps.Rectangle({
        bounds: bounds,
        editable: true,
        draggable: true
    });
    

    只有您定义的三个属性实际存在。此外,bounds 属性将是未定义的,因为它分配了一个不存在的边界变量。

    很遗憾,Google 没有提供创建此类 RectangleOptions 对象的直接方法。

    因此,正确的方法是创建一个新的通用对象,其中包含可用于 RectangleOptions 对象的所有属性,并将这些属性提供给 Rectangle 的构造函数。

    var options = {
      bounds: new google.maps.LatLngBounds(),
      clickable: true,
      draggable: false,
      editable: false,
      fillColor: '#FF0000',
      fillOpacity: 1,
      map: new google.maps.Map(""),
      strokeColor: '#FF0000',
      strokeOpacity: 1,
      strokePosition: google.maps.StrokePosition.CENTER,
      strokeWeight: 1,
      visible: true,
      zIndex: 1
    }
    var rectangle = new google.maps.Rectangle(options);
    console.log(rectangle.bounds);
    

    【讨论】:

      【解决方案3】:
      var rectangle = {}
      rectangle = new google.maps.Rectangle({
                  bounds: bounds,
                  editable: true,
                  draggable: true
                });
      

      像上面那样尝试,请

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-10
        • 2019-09-11
        • 1970-01-01
        • 2013-10-19
        • 1970-01-01
        • 2015-09-16
        相关资源
        最近更新 更多