2010-03-06 86 views
0

在下面的例子中,我試圖訪問父母兄弟姐妹。有沒有比我想出來的更好的方式,是什麼給了?Javascript範圍 - 父母兄弟姐妹

破碎:

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

看起來像一個黑客修復:

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

回答

2

爲什麼不使用:

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

哇。我覺得自己像一個白癡 - 這是我嘗試的第一件事情之一。我一定是猜錯了什麼。謝謝! – Zac 2010-03-06 01:05:16

0

你爲什麼不加入原型?

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