What is the purpose of styles() method in jquery ?

What is the purpose of styles() method in jquery ?

i was just going through the source of jquery css() method and came across the following lines of code : 

  1. function (name, value) {
  2.     return access(this, function (elem, name, value) {
  3.         var styles, len, map = {},
  4.             i = 0;

  5.         if (jQuery.isArray(name)) {
  6.             styles = getStyles(elem);
  7.             len = name.length;

  8.             for (; i < len; i++) {
  9.                 map[name[i]] = jQuery.css(elem, name[i], false, styles);
  10.             }

  11.             return map;
  12.         }

  13.         return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);
  14.     },
  15.     name, value, arguments.length > 1);
  16. }
now inside his code there is a method  style()  which is being used, now when i googled i did't find any documentation about this perticular method , can somebody tell me of what use or for what purpose does this method exists in jquery ? , in the source i see the following code :

  1. function (elem, name, value, extra) {
  2.     // Don't set styles on text and comment nodes
  3.     if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {
  4.         return;
  5.     }

  6.     // Make sure that we're working with the right name
  7.     var ret, type, hooks, origName = jQuery.camelCase(name),
  8.         style = elem.style;

  9.     name = jQuery.cssProps[origName] || (jQuery.cssProps[origName] = vendorPropName(style, origName));

  10.     // gets hook for the prefixed version
  11.     // followed by the unprefixed version
  12.     hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];

  13.     // Check if we're setting a value
  14.     if (value !== undefined) {
  15.         type = typeof value;

  16.         // convert relative number strings (+= or -=) to relative numbers. #7345
  17.         if (type === "string" && (ret = rrelNum.exec(value))) {
  18.             value = (ret[1] + 1) * ret[2] + parseFloat(jQuery.css(elem, name));
  19.             // Fixes bug #9237
  20.             type = "number";
  21.         }

  22.         // Make sure that null and NaN values aren't set. See: #7116
  23.         if (value == null || value !== value) {
  24.             return;
  25.         }

  26.         // If a number was passed in, add 'px' to the (except for certain CSS properties)
  27.         if (type === "number" && !jQuery.cssNumber[origName]) {
  28.             value += "px";
  29.         }

  30.         // Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
  31.         // but it would mean to define eight (for every problematic property) identical functions
  32.         if (!support.clearCloneStyle && value === "" && name.indexOf("background") === 0) {
  33.             style[name] = "inherit";
  34.         }

  35.         // If a hook was provided, use that value, otherwise just set the specified value
  36.         if (!hooks || !("set" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {

  37.             // Support: IE
  38.             // Swallow errors from 'invalid' CSS values (#5509)
  39.             try {
  40.                 style[name] = value;
  41.             } catch(e) {}
  42.         }

  43.     } else {
  44.         // If a hook was provided get the non-computed value from there
  45.         if (hooks && "get" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {
  46.             return ret;
  47.         }

  48.         // Otherwise just get the value from the style object
  49.         return style[name];
  50.     }
  51. }

can somebody tell me what is the purpose of the style method in jquery ? is it something internal to jquery ? or what is the purpose of this method ?