Highcharts.wrap在原函数的基础上扩展原函数
/**
* Wrap a method with extended functionality, preserving the original function
* @param {Object} obj The context object that the method belongs to
* @param {String} method The name of the method to extend
* @param {Function} func A wrapper function callback. This function is called with the same arguments
* as the original function, except that the original function is unshifted and passed as the first
* argument.
*/
var wrap = Highcharts.wrap = function (obj, method, func) {
//备份原函数
var proceed = obj[method];
obj[method] = function() {
//拷贝一份实参
var args = Array.prototype.slice.call(arguments);
//将原函数的引用放到第一个入参
args.unshift(proceed);
//保持上下文调用func
func.call(this, args);
}