行走在冬夜冷风中
2016-02-27 13:50
var obj = {x:1,y:2} obj.x =1; obj.["y"]=2; obj.["x"]=3; 最后个是怎么来的啊
“=”号是赋值的意思啊
“=”号是赋值的意思啊 。 所以呀obj["x"]=3这个意思是将原本x=1重新赋值为x=3;
obj['x']=3 意思是把三这个值赋值给x这个属性,并不是读取
真的输出3了吗,求解释,我感觉代码有错啊!
拷过来的,你看看吧。
var test ={name:1}
用点的时候,后面需要是一个指定的属性名称,譬如说 test.name,不需要用引号括起来,因为默认name就是test里面的属性,但是如果写 var obj = name 。test.obj就是不正确的,因为obj这个时候是被当成一个固定的字符串,不是变量。
用中括号的时候 ,括号里面可以是变量或者字符串,譬如说,var obj = "name",test[obj]会自动识别成obj["name"],因为中括号会计算一次生成字符串访问。当然可以直接写obj["name"],
其实 test.name 最终也会按照 test["name"]去执行的
所以用点的时候后面一定要是一个指定的 属性名,用[]时候后面一定是一个变量或者固定属性名的字符串。
JavaScript深入浅出
281101 学习 · 1020 问题
相似问题