Can I declare a variable inside a function which has instance scope?

I have a prefab containing a script that has several member arrays (builtin arrays). Another script creates each instance of this prefab and sizes the arrays differently.

At present, I am declaring the variables at the top of the script, then calling the initialization function from the other script, which gives it the size of its array:

private var things;
private var thingSize : int[];

function MakeThings(numberPassedFromOtherScript) {
   things = numberPassedFromOtherScript;
   thingSize = new int[things];
   for (a=0;a<things;a++) {
      thingSize[a] = Random.value*10;
   }
}

Is there a way to instead declare the variables inside that MakeThings() function, sizing them at the same time, and still have access to the variables and arrays after MakeThings() ends? Something like this... (I know I'm using global incorrectly here, this is just for illustration.)

function MakeThings(numberPassedFromOtherScript) {
   global var things = numberPassedFromOtherScript;

   global var thingSize = new int[things];
   for (a=0;a < things; a++) {
      thingSize[a] = Random.value*10;
   }
}

No, obviously, scope is defined by the declaration - so if you declare a variable inside a method, it has method scope. What would be the use of having member variables declared in a method anyways, except for making things complicated and hard to understand? ;-)