(前端js问题)在函数中修改全局变量

是echarts中:
我想在注释(2)处通过函数**onclick:function()**修改注释(1)处的全局变量,达到修改注释(3)处的end变量。

问题:**请问function那里的代码应该如何修改?**

或者整个应该如何修改我的代码才可以实现上述效果。

感谢。

var dataAxis =[];
var end = 10    //******这里(1)*******
option = {
title: {
    text: ''
    },

tooltip : {
    trigger: 'axis',
    formatter:"第{c4}点信息:<br/>{a0}:{c0}m<br/>{a1}:{c1}m<br/>{a2}:{c2}m<br/>{a3}:{c3}%",          
    axisPointer: {
       type: 'cross',
       label: {
           backgroundColor: '#6a7985'
      },
    },
},
toolbox: {
    itemGap:20,
    itemSize:20,
    right:30,
    feature: {
        restore: {show: true,}, 
        myTool1: {
            show: true,
            title: '自定义',
            icon: 'image://http://echarts.baidu.com/images/favicon.png',
            onclick: function (){
                                                                                                end=20; //*****这里(2)*******
                                                                                            }
                                    },
            },
         },

dataZoom: [
    {
    type: 'inside',
    filterMode:'none',
    start:0,
    end: end,//******这里(3)******
    zoomOnMouseWheel:false, 
    moveOnMouseMove:false,  
            }, 
    {
    zoomLock:true,
    textStyle:false,
    handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
    handleSize: '80%',
    handleStyle: {
        color: '#fff',
        shadowBlur: 5,
        shadowColor: 'rgba(0, 0, 0, 0.8)',
        shadowOffsetX: 2,
        shadowOffsetY: 2,
    }
},
],
    ......(后面省略)

https://www.cnblogs.com/yxz-turing/p/4735934.html
应该会对你有帮助哦!

上面想法没问题,3的想法就错了

dataZoom: [
    {
    type: 'inside',
    filterMode:'none',
    start:0,
    end: ()=> end,//修改为 函数返回结果,而不是初始化赋值
    zoomOnMouseWheel:false, 
    moveOnMouseMove:false,  
            }, 
    {
    zoomLock:true,
    textStyle:false,
    handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
    handleSize: '80%',
    handleStyle: {
        color: '#fff',
        shadowBlur: 5,
        shadowColor: 'rgba(0, 0, 0, 0.8)',
        shadowOffsetX: 2,
        shadowOffsetY: 2,
    }
},
]

如果不想使用函数,那就用代理拦截get请求

dataZoom: [
   new Proxy({
    type: 'inside',
    filterMode:'none',
    start:0,
    end: end,
    zoomOnMouseWheel:false, 
    moveOnMouseMove:false,  
            }, 
    {
    zoomLock:true,
    textStyle:false,
    handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
    handleSize: '80%',
    handleStyle: {
        color: '#fff',
        shadowBlur: 5,
        shadowColor: 'rgba(0, 0, 0, 0.8)',
        shadowOffsetX: 2,
        shadowOffsetY: 2,
    }
}
, {
get(target, propKey, receiver){
    if(propKey == 'end') return end;//修改为 代理拦截
  return Reflect.get(target, propKey, receiver);
}
})
]

( function (){
        end=20; //*****这里(2)*******
})(),
换成一个自执行函数就行了