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();