2010-03-06 4 views
0

Dans l'exemple ci-dessous, j'essaie d'accéder aux parents frères et sœurs. Y a-t-il un meilleur moyen que ce que j'ai trouvé, qu'est-ce qui donne?Scoping Javascript - parents frères et sœurs

concassés:

var funkyness = function(){ 

    var some_obj = { 
     foo: function() { 
      alert('bar'); 
     }, 

     'wrapper' : { 
      'OK': function() { 
       // I want to access some_obj.foo 
       foo(); // foo is not defined 
      } 
     } 
    } 

    some_obj.wrapper.OK(); 
}; 

On dirait une solution hack:

var funkyness = function(){ 
    var afoo; 
    var some_obj = { 
     foo: function() { 
      alert('bar'); 
     }, 

     'wrapper' : { 
      'OK': function() { 
       // I want to access some_obj.foo 
       afoo(); 
      } 
     } 
    } 

    afoo = some_obj.foo; 
    some_obj.wrapper.OK(); 
}; 

Répondre

2

Pourquoi ne pas utiliser:

var funkyness = function(){ 

var some_obj = { 
    foo: function() { 
    alert('bar'); 
    }, 

    'wrapper' : { 
    'OK': function() { 
    debugger; 
    // I want to access some_obj.foo 
    some_obj.foo(); // foo is a member of some_obj 
    } 
    } 
} 

some_obj.wrapper.OK(); 
}; 
+0

Wow. Je me sens comme un idiot - ça doit être l'une des premières choses que j'ai essayées. Je dois avoir typo'ed ou quelque chose. Merci! – Zac

0

Pourquoi vous pas ajouter un prototype?

some_obj.prototype.foo = function() 
{ 
    // bleh 
} 
Questions connexes