Многие библиотеки JS делают что-то вроде этого:
if (!Function.prototype.context) {
Function.prototype.context = function (object) {
var fn = this;
return function () { return fn.apply(object, arguments); };
};
}
Чтобы иметь возможность передавать / связывать this
с обработчиком.Так что в вашем случае вы можете сделать что-то вроде этого
action(obj.f.context(obj));
и получить свой «Привет».И да, это общий способ сделать то, что вы сделали в шаге 3.