Can't figure out how to pass object's method as a parameter properly.
Here is my code:
var MyTest = function (p1) {
this.p1 = p1;
};
MyTest.prototype.getParam = function () {
return this.p1;
};
function doAction(getParamCallback) {
console.log(getParamCallback());
}
var mt = new MyTest(123);
console.log(mt.getParam()); // 123
doAction(mt.getParam); // undefined
The only way to pass a method correctly I have found is to pass both object and method and use call():
function doAction2(obj, getParamCallback) {
console.log(getParamCallback.call(obj));
}
doAction2(mt, mt.getParam); // 123
Is there any way that requires only method to be passed, not both method and object?