Javascript scoping - родные братья и сестры - PullRequest
0 голосов
/ 06 марта 2010

В приведенном ниже примере я пытаюсь получить доступ к родному брату. Что может быть лучше, чем то, что я придумал?

Поврежденная:

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 ]

2 голосов
/ 06 марта 2010

Почему бы не использовать:

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 голосов
/ 06 марта 2010

Почему бы вам не добавить прототип?

some_obj.prototype.foo = function() 
{
    // bleh
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...