The question is better viewed from the other side. Why would it be defined? a wouldn't really be so reusable with a comment saying "NOTE: You can only run this function if you have a var c declared in the encompassing function". That's just not very discoverable, and means it's very hard to track how long a certain naming scope is used.
A feature of JavaScript that may do what you desire is "closures". This is when you declare an entire function inside of another; it's very handy for callbacks when you don't feel the second function deserves its own naming and place in the code structure.
What will happen here is that the language will automatically see that it needs c (already declared) inside of the function you're declaring, and so it preserves an internal reference to it, associated with the callbackFunction variable. So, you can still refer to it in there.
var b = function() {
var c = 10; // local variable, but it is accessibly for b(), I think
var callbackFunction = function() {
console.log(c);
};
// optionally, place c in a setTimeout, ajax callback, etc.
callbackFunction();
}();
cis local tob, it's not visible toa.cneeds to exist outside ofbor you need to pass it toa.