1

我有以下对象。

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'
   }

}

在这里, value ofou.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';

没有一个,这些都给出了期望的输出。让我知道是否需要任何其他信息。

4

1 回答 1

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'
于 2013-03-19T07:37:00.473 回答