eelixduppy is correct. It is fundamentally ~any~ code that encloses or utilizes some other piece of code. And as he points out, it is not something specific. A "wrapper" is not like a "function", "class", "variable", "array", etc... it isn't anything specific --- it is terminology (like the term "polymorphism", it basically describes something).
Suppose you had two functions... "getWhales" and "getAnimal". And you had code like:
function getWhales()
{
return getAnimal('whales');
}
This is a
very, very simple demonstration. But you could say: "getWhales() is a wrapper of getAnimal()". Get the idea? 'whales' "wraps" around 'animal' in some way, hence you could call it a wrapper. Though note, this code is incredibly simplistic. You could have a 'wrapper' that is incredibly more complicated and advanced.
Usually...
in practice: a "wrapper" is a function/method/class that
you have coded, the usually wraps itself around (utilizes) some other code that someone else has written (function, object, class, etc).