Ошибка JS при присвоении свойству объекта значения вложенного свойства, функции или массива

#javascript

#javascript

Вопрос:

Очень новичок в JS, использующий VSCode, пробующий примеры в руководствах. Столкнулся с этой ошибкой при вводе и настройке свойств объекта. Первые свойства, такие как firstname , lastname и age , похоже, регистрируются нормально, однако, когда я пытаюсь использовать массив, функцию или вложенные свойства в качестве свойства объекта, я получаю ошибку, и она не регистрируется в консоли.

Ошибка заключается в:

» «.» ожидается. (TS1005)

Пожалуйста, посоветуйте, я абсолютный новичок, но изо всех сил пытаюсь узнать больше, поэтому, пожалуйста, простите мое невежество на данный момент.

    var person = {
       firstname: 'Matilda',
       lastname:'Milner',
       age: 68
       kids: ['Dave', 'Lynn', 'Cal', 'August', 'Cade'],
       location: {
                street: '500 Some St.',
                city: 'Inola',
                state: 'Oklahoma',
                zip: '66702',
                }
        
        fullname: function(){
           return this.firstname   " "   lastname;
        }      
   }
   console.log(person.firstname  " " person.lastname   " "  "is"  " "   person.age  " "  "years old");
   console.log(person.kids[3])
   console.log(person.address.zip)  

Комментарии:

1. Спасибо! Теперь я вижу, что пропустил запятую после числового значения 68, что привело к ошибке в последующих строках. и в моей попытке проверить, использовал ли я зарезервированное слово, я не обновил следующие строки до новых значений.

Ответ №1:

В вашем коде немного синтаксических ошибок

  • Вы пропустили , множество мест в вашем определении объекта.
  • Вы пропустили this ранее lastname в своей fullname функции
  • У вас нет никакого вызываемого свойства address , но вы пытаетесь получить доступ person.address.zip

 var person = {
       firstname: 'Matilda',
       lastname:'Milner',
       age: 68,
       kids: ['Dave', 'Lynn', 'Cal', 'August', 'Cade'],
       location: {
                street: '500 Some St.',
                city: 'Inola',
                state: 'Oklahoma',
                zip: '66702',
                },
        
        fullname: function(){
           return this.firstname   " "   this.lastname;
        }      
   }
   console.log(person.firstname  " " person.lastname   " "  "is"  " "   person.age  " "  "years old");
   console.log(person.kids[3])
   console.log(person.location.zip)
   console.log(person.fullname())