【问题标题】:How to change value of an object that is a value inside another object如何更改作为另一个对象内部值的对象的值
【发布时间】:2017-08-28 07:01:19
【问题描述】:

我正在将值传递给函数 addPolyline(props) 以动态更改路径值和颜色

var lineSymbol = {
    path: 'M 0,-1 0,1',
    strokeOpacity: 1,
    scale: 4,          
    strokeWeight: 2,
};



function addPolyline(props){    
    flightPath = new google.maps.Polyline({ 
        path: props.flightPath,
        geodesic: true,
        strokeColor: props.color,
        strokeOpacity: 0,
        icons: [{
            icon: lineSymbol,
            offset: '0',
            repeat: '20px'
        }]
    });
}   

addPolyline({
    flightPath: flightPlanCoordinates,
    color: "#f9a61e"
});

但是如何更改 lineSymbol 内部但作为图标键的一部分在 addPolyline 中调用的不透明度。

【问题讨论】:

  • flightPath初始化之前不能修改lineSymbol吗?类似:lineSymbol.strokeOpacity = props.newOpacity.
  • 假设您可以有多个图标,您将不得不遍历图标并合并/覆盖对象

标签: javascript javascript-objects


【解决方案1】:

您只需使用props 初始化 lineSymbol 中的值即可传递所需的值

function addPolyline(props){  
   lineSymbol.strokeOpacity = props.symbolOpacity;   
   flightPath = new google.maps.Polyline({ 
    ...

或者,如果您不想修改全局lineSymbol

 function addPolyline(props){  
   var symbol = Object.assign({}, lineSymbol)
   symbol.strokeOpacity = props.symbolOpacity;   
   flightPath = new google.maps.Polyline({ 
     ...
     icons: [{
        icon: symbol,

并用

调用
addPolyline({
    flightPath: flightPlanCoordinates,
    color: "#f9a61e",
    symbolOpacity: 0.8
});

【讨论】:

  • 即使现在只有颜色变化,而不是不透明度
  • 哎呀小错字,已修复。
  • 这行得通,谢谢,所以我必须将对象分配给外部对象,然后调用分配的对象键
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-24
  • 2021-06-30
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 2017-07-24
  • 1970-01-01
相关资源
最近更新 更多