JavaScript - isso é

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 em,"Hello, Nurse!".foo.bar() registraria "Olá, enfermeira!".

Faz a diferença se houver controle sobre o foo?

Edit: Lá, foo está definid

Edit2: Bem, em vez dethis.this.this, this.parent.parent. É claro que pai não existe, mas espero que agora a semântica não atrapalh

Edit3: Não há um caso específico. Os detalhes fornecidos são praticamente tudo o que tenho: há um objeto foo, parte de um protótipo.foo.bar é um método defoo e deve acessar seu avô. É isso aí. Nada mais. Essa é toda a informação que tenho.

Edit4: Resolvido. Com base na resposta fornecida (e em alguma ajuda em segunda mão de Douglas Crockford):

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

questionAnswers(2)

yourAnswerToTheQuestion