如何获取父/包装对象的引用?

时间:2013-03-19 07:30:43

标签: javascript

我有以下对象。

ou.map : {
   settings : {
   },

   basePath : './path/';
   marker_setting : {
     img   :  this.basePath + 'image.png';
   },

   fun : function() {
      alert ( this.maker_setting.img  );
      //alert ( this.basePath + this.maker_setting.img ); Right now, I am using this where this.maker_setting.img is simply 'image.png'
   }

}

此处,ou.map.marker_setting.img的值为undefinedimage.png,但我希望它为./path/image.png。我怎样才能做到这一点?

修改
我也愿意改变完整的方法。我想要的是,一个名称空间具有marker_setting和basePath,一个主要方法可以使用marker_setting中的属性。

另外,我尝试了所有这些

img   :  this.basePath + 'image.png';
img   :  basePath + 'image.png';
img   :  ou.map.basePath + 'image.png';

没有,这些都给出了期望的输出。如果需要任何其他信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

this的值取决于上述代码的执行方式和位置,即在您的案例中定义ou.map对象的上下文。

例如:

function foo() {
   ou.map = {
      // here this would be 'x'
   }
}

foo.call('x'); // means the value of "this" inside foo() will be 'x'