It works for all functions that have parameters, `f(a)` and `a.f()` are equivalent.
Yes, but I presume that f() cannot access private members of a.
That's correct.