I use $page->content()->fields() to get an array of the page’s field NAMES; and then I loop that array, adding parentheses to each name. This seems to turn the field name into the field method, returning the full field object.
All three are OK, but the first piece of code (in your first post) will not work, because there is no fields() page method. $page is the usual way of referring to the current page.