Self-defining functions as methods

/**
 * A easy solution to overcome
 * the self-defining functions'
 * issue as methods.
 *
**/

var self_defining_function = function () {
    console.log("initial f1 definition");
    self_defining_function = function () {
        console.log("post f1 definition");
    };
};

var object = {
    f1: function() {
        return self_defining_function();
    },

    f2: function() {
        console.log("initial f2 definition");
        this.f2 = function() {
            console.log("post f2 definition");
        };
    },
}

object.f1(); // (line 33)
object.f1(); // (line 34)
object.f2(); // (line 35)
object.f2(); // (line 36)

// initial f1 definition
// post f1 definition
// initial f2 definition
// post f2 definition