Javascript范围 - 父母兄弟姐妹

时间:2010-03-06 00:03:24

标签: javascript scope

在下面的示例中,我正在尝试访问父母的兄弟姐妹。有没有比我想出的更好的方式,给出了什么?

断裂:

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 个答案:

答案 0 :(得分: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();
};

答案 1 :(得分:0)

为什么不添加原型?

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