Function Pointers In Objects
Solution 1:
I want one of the properties of passed object to be a function pointer. But the function is executed which I don't want to happen.
That sounds like instead of passing a reference to the function, you are executing the function and passing the return value.
Maybe in your original code you have
myFunc( {foo:"bar", onDone: myFuncPtr()} );
which calls myFuncPtr
and assigns the return value to onDone
.
The code in the question is fine though, just call o.onDone()
inside myFunc
.
As already said, there are no pointers in JavaScript, it's much simpler than that. Functions are just data types such as strings, numbers, arrays etc, which happen to be callable.
Solution 2:
var myFuncPtr = function(){alert("Done");};
function myFunc(o)
{
alert("Hello " + o.foo);
o.onDone();
}
myFunc( {foo:"bar", onDone: myFuncPtr} );
This does your trick. The onDone property of your object 'points' to the correct function, you can just call that.
Solution 3:
Theerrrreee is no pointer
in ECMAscript...... Asposx.yxm--dfgdfg.:!!
beside that... you might just want to call:
o.onDone();
within myFunc()
.
Post a Comment for "Function Pointers In Objects"