The two forms
myobject.myfunction;
and
myobject["myfunction"];
are equivalent as long as you only use a fixed string to access the member (using a computed value is a different matter, then you must use the second form). Both lines result in the function-object-member myfunction which you can assign to a variable if you like, and calling that:
var myfunc = myobject.myfunction;
myfunc();
Note that assigning it to the variable breaks the this variable, so you might not want to do that if you're doing OOP.
And as you noted, calling a function means adding () with an argument list afterwards, it doesn't matter that the function is acquired through an expression, so either:
myobject.myfunction();
or
myobject["myfunction"]();
myobject["my function"]()will work butmyobject.my function()using dot notation will not.