example/public/ueditor/third-party/highcharts/highcharts.src.js
function wrap(obj, method, func) {
	var proceed = obj[method];
	obj[method] = function () {
		var args = Array.prototype.slice.call(arguments);
		args.unshift(proceed);
		return func.apply(this, args);
	};
}
function wrap(obj, method, func) {
	var proceed = obj[method];
	obj[method] = function () {
		var args = Array.prototype.slice.call(arguments);
		args.unshift(proceed);
		return func.apply(this, args);
	};
}
function wrap ( obj , method , func ) { var proceed = obj [ method ] ; obj [ method ] = function ( ) { var args = Array . prototype . slice . call ( arguments ) ; args . unshift ( proceed ) ; return func . apply ( this , args ) ; } ; }
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.
Wrap a method with extended functionality preserving the original function