JS 有两种访问变量的方式,一种是 a.b 的形式,另一种是 a[b] 的形式,两种大体上没有什么差别。

不同的是,第二种里面的 b,可以是字符串,也可以是变量。这样,当你不知道某接口或者某对象的属性的时候,可以用一个变量代替,或者写一个 controller 函数时,无需关心 view 需要访问 model 的哪个属性,只需在其中传递变量即可。

1. 举例说明

比如现在要实现一个将 API 接口 返回的提示信息「转换」为多语言的功能,那么只需要将带转换的文本以键值对形式存储在 JSON 对象 中,然后根据键取值即可。

2. 示例代码

var langs = {
    "invalid_username": "用户名无效",
    "invalid_password": "密码无效"
};

function lang(str) {
    return langs[str];
}

console.log(lang("invalid_username"));

要关注的是,返回的 langsstr 对应的值,是以 [] 形式取值的,如果以 . 形式取值,将会是 undefined