我有以下对象。
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';
没有,这些都给出了期望的输出。如果需要任何其他信息,请与我们联系。
答案 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'