Javascript code:
function doSomething(v1,v2){ //blah; }
function SomeClass(callbackFunction,callbackFuncParameters(*Array*))={
this.callback = callbackFunction;
this.method = function(){
this.callback(parameters[0],parameters[1]) // *.*
}
}
var obj = new SomeClass( doSomething, Array('v1text','v2text') );
The problem is if I change function doSomething to
function doSomething(v1,v2,v3){ //blah; }
I have to change the corresponding line (marked as //*.*
) in SomeClass
to
this.callback(parameters[0],parameters[1],parameters[2]);
What can be done to avoid the (*.*)
line to be changed no matter how the number of 'doSomething' function's parameters is changed?
Thanks a lot!
From stackoverflow
-
You probably want to use the apply method
this.callback.apply(this, parameters);
The first parameter to apply indicates the value of "this" within the callback and can be set to any value.
Shawn : Works! Thank you.Metropolis : Im a little confused on how to use this functionality. What I want to do is pass a function to a callback like this - myfunction(function(myele) { //use myele }). So I am passing an anon callback function here with the myele parameter being passed to it. How would I do this with your code above? -
Why you just don't pass the parameters array as a parameter?
some : Maybe because (user+"@"+host+path) makes more sense than (args[1]+"@"+args[0]+args[2]) ?
0 comments:
Post a Comment