问题简化描述:
myObjModel.js
var myObj = new Object();
myObj.personalImg01 = "images/person01.png";
myObj.personalImg02 = "images/person02.png";
以上是为了问题复现简单定义的一个Model,现在需求是需要在别的js文件中根据条件来获取myObj的personalImg01或者是personalImg02的值。
//条件判断方法
function getImg(condition){
if(condition>1){
return "personalImg01";
}else{
return "personalImg02";
}
}
var image = getImg(2);
关键时候到了
var personalImg = myObj.image;
此时personalImg得到的是undefined;因为getImg方法返回的字符串。
但是怎么按这种思路来获取想要的结果呢?想了许久也没有找到解决办法,在这边看看有没有高人给提点一下
当然有可能是我这个这个想法根本就是荒谬不可行而不自知,还是需要高人指点。
我采取的解决办法是
//条件判断方法
function getImg(condition){
if(condition>1){
return myObj.personalImg01;
}else{
return myObj.personalImg02;
}
}
var personalImg = getImg(2);
这样就直接获取到了。
对象的属相a.b 其实是一种简写方式,还有一种方式就是a['b']; 你的这个
image
不是字符串,所以应该是myObj[image]
这样,注:[]
里如果还是个字符串,是需要''
的,一般这种情况就是你的属性名是类似这样的,nike_name
,此时a.nike_name
,不行,应该是a['nike_name']