场景:
需要对每个series设置不同背景色的tooltip时,highcharts自身没有这种配置项,就需要我们利用Highcharts原型封装函数Wrap。
wrap对现有的highcharts示例的原型进行修改,允许在现有函数之前或之后向其中添加自己的代码。

其用法如下:
(function (H) {
H.wrap(H.Tooltip.prototype, 'refresh', function (proceed, points) {

  // When refresh is called, code inside this wrap is executed

});
}(Highcharts));
(上面是一个立即执行函数的写法,看里面的H.wrap)

wrap函数的第一个参数为父类对象,第二个参数为要封装的函数名称,第三个参数为回调替换函数。

我们也可以用简单朴素的写法
示例代码如下:
const H = Highcharts;
H.wrap(H.Tooltip.prototype, 'refresh', function (p, point, mouseEnents) {
p.call(this, point, mouseEnents);
const label = this.label;
if (point && label) {

label.attr({
    fill: point.series.userOptions.marker.fillColor
});

}
});

效果如下

同步更新到自己的语雀
https://www.yuque.com/diracke...

03-05 22:53