如何在Javascript中通过点运算符访问对象的属性

时间:2014-01-08 11:44:08

标签: javascript

var changeJsonKeyName, newObj, obj;
changeJsonKeyName = function(json, oldName, newName) {
  json[newName] = json[oldName];
  delete json[oldName];
//    json.newName = json.oldName;
//    delete json.oldName;
    // if i use point in this ,i  can not get my result that i want   


  return json;
};
obj = {
  'aaa': '1111',
  'bb': {
    'cc': 333
  }
};
newObj = {};
newObj = changeJsonKeyName(obj, 'aaa', 'nnn');
console.log(newObj);

如果我在这里使用点,我不能得到我想要的结果,有什么不对,请帮帮我,非常感谢。

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解正确,但是:

json[newName]

使用newName变量

的值命名的访问属性
json.newName

访问名为'newName'的属性,该属性不存在

答案 1 :(得分:0)

首先,正如评论所指出的,这是一个Javascript问题,而不是JSON问题。

但你似乎在问为什么会这样:

 json[newName] = json[oldName];
 delete json[oldName];

但这不是:

 json.newName. = json.oldName.;
 delete json.oldName;

没有。

答案是第二种形式实际上相当于

 json["newName"] = json["oldName"];
 delete json["oldName"];

换句话说,您正在处理名称为常量“oldName”和“newName”的属性,而不是名称作为参数传递给该方法的属性。