JavaScript - esto de este

String.prototype.foo = {};
String.prototype.foo.bar = function() {
    //How can you reference the "grandparent" string?
    console.log(this.parent.parent); //obviously, doesn't exist
}

Como en,"Hello, Nurse!".foo.bar() registraría "¡Hola, enfermera!".

Hará una diferencia si hay control sobre foo?

Edit: Ahí, foo está definido.

Edit2: bien, en lugar dethis.this.this, this.parent.parent. Por supuesto, el padre no existe, pero espero que ahora la semántica no se interponga en el camino.

Edit3: no hay un caso específico. Los detalles proporcionados son todo lo que obtuve: hay un objeto foo, parte de un prototipo. @foo.bar es un método defoo, y se supone que tiene acceso a sus abuelos. Eso es. Nada más. Esa es toda la información que tengo.

Edit4: Resuelto. Según la respuesta proporcionada (y alguna ayuda de segunda mano de Douglas Crockford):

String.prototype.foo = function() {
    var that = this;
    return {
        bar : function() {
            console.log(that.valueOf());
        }
    }
}
//Called:
"Hello, Nurse!".foo().bar();

Respuestas a la pregunta(2)

Su respuesta a la pregunta