簡體   English   中英

如何在Javascript中通過點運算符訪問對象的屬性

[英]How to access properties of object by dot operator in 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);

如果我在這里使用point,我無法得到我想要的結果,出了什么問題,請幫助我,非常感謝。

我不確定我是否正確理解您,但是:

json[newName]

以newName變量的值命名的訪問屬性

json.newName

訪問名為“ newName”的屬性,該屬性不存在

首先,正如評論所指出的,這是一個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”的屬性,而不是將名稱作為參數傳遞給該方法的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM