JS 有两种访问变量的方式,一种是 a.b 的形式,另一种是 a[b] 的形式,两种大体上没有什么差别。
不同的是,第二种里面的 b,可以是字符串,也可以是变量。这样,当你不知道某接口或者某对象的属性的时候,可以用一个变量代替,或者写一个 controller 函数时,无需关心 view 需要访问 model 的哪个属性,只需在其中传递变量即可。
比如现在要实现一个将 API 接口 返回的提示信息「转换」为多语言的功能,那么只需要将带转换的文本以键值对形式存储在 JSON 对象 中,然后根据键取值即可。
var langs = {
"invalid_username": "用户名无效",
"invalid_password": "密码无效"
};
function lang(str) {
return langs[str];
}
console.log(lang("invalid_username"));要关注的是,返回的 langs 中 str 对应的值,是以 [] 形式取值的,如果以 . 形式取值,将会是 undefined。