Javascritp:访问嵌套对象时何时使用方括号以及何时使用点

时间:2019-07-20 02:39:57

标签: javascript object properties brackets

我有两个运行良好的代码,但是我不明白为什么在其中一个代码中需要使用方括号,而在另一个代码中却不需要。代码取自FreeCodeCamp教程。

第一个代码:

let users = {
  Alan: {
    age: 27,
    online: false
  },
  Jeff: {
    age: 32,
    online: true
  },
  Sarah: {
    age: 48,
    online: false
  },
  Ryan: {
    age: 19,
    online: true
  }
};

function countOnline(obj) {

  var numbUsers = 0;
  for (let user in obj){
    if (obj[user].online){   
        numbUsers++;       
    }                        
  }  
  return numbUsers;  
}
console.log(countOnline(users));

在这里,我们需要在[用户]上使用方括号,如果您使用点号,它将无法使用。据我了解,用户不是变量(变量是可以通过点访问的变量),因为它是一个对象,因此我们需要使用方括号。

第二个代码:

let user = {
  name: 'Kenneth',
  age: 28,
  data: {
    username: 'kennethCodesAllDay',
    joinDate: 'March 26, 2016',
    organization: 'freeCodeCamp',
    friends: [
      'Sam',
      'Kira',
      'Tomo'
    ],
    location: {
      city: 'San Francisco',
      state: 'CA',
      country: 'USA'
    }
  }
};

function addFriend(userObj, friend) {

  userObj.data.friends.push(friend);

  return userObj.data.friends;

}

console.log(addFriend(user, 'Pete'));

在这段代码中,正如我所看到的,对象内部有一个对象,并且只能通过点对其进行访问,并且效果很好……为什么?为什么在第一个代码中我无法做到这一点?

我需要了解它是如何工作的,否则我将无法在Javascript上正确编写代码。

在此星期五晚上,谢谢所有愿意提供帮助的人。

:D

0 个答案:

没有答案