Skip to main content
3 of 4
improved formatting and style; changed mentions of JScript to JavaScript
amon
  • 135.9k
  • 27
  • 295
  • 386

JavaScript function prototyping

Say I have a bunch of JavaScript functions similar to:

message = [“000”, “111”, “222”, “333”];
 
function F0(){
    alert (message[0]);
}

function F1(){
    alert (message[1]);
}

function F2(){
    alert (message[2]);
}

function F3(){
    alert (message[3]);
}

Is there a way to prototype those functions?

This is, to declare something like:

function F<T>(){
   alert (message[T]);
}

The reason is quite simple. In my solution, I have much more complex functions performing the same action (they are callback functions for a few XMLHttpRequest objects). Each time I make a change, it needs to be reflected across all functions – something I’m looking to avoid. From within the function, I cannot know whether it was called by XMLHttpRequest[5] or XMLHttpRequest[2], therefore I created a few similar functions (for each XMLHttpRequest object). I’m looking for a way to prototype those functions, so I’ll keep the logic in one place. So far, I haven’t found a way to achieve that kind of prototyping with JavaScript.

Just to be clear, I'm using those functions for XmlHttpRequest.onstatechange so those are called without any parameters (something like: xhr[0].onstatechange = F0; xhr[1].onstatechange = F1;). I'm looking for a way to prototype just the function and than create a few "instances" of it, differentiated by an index within those function themselves.

Alex
  • 21
  • 3