2017-02-16 30 views
0

Академия Code говорит, что есть два способа создания объектов в JavaScript.Ошибка синтаксиса в присвоении свойства объекта

1. Объект буквальное обозначение

var myObject = {  
    key: value,  
    key: value,  
    key: value 
}; 

2. конструктор объекта подход

var myObject = new Object(); 

ключи могут быть добавлены таким образом:

myObj["name"] = "Charlie"; 
myObj.name = "Charlie"; //shorthand for the first 

попросили создать 3 o bjects, я пробовал разные способы создания объектов с одинаковыми значениями, но я получаю сообщение об ошибке, используя приведенный выше шаблон. Мой код вклеен ниже:

var object1 = { 
    1: 2, 
    7: 3, 
    4: 5 
}; 

var object2 = new Object(); 
object2['1'] = 2; 
object2['7'] = 3; 
object2['4'] = 5; 

var object3 = new Object(); 
object3.1 = 2; 
object3.7 = 3; 
object3.4 = 5; 

Code Academy дал мне ошибку и выяснил, где именно это было, я использовал консоль Chrome. Связывание каждого создания объекта отдельно на консоли в Chrome, object1 и object2 может быть создан, но не object3, которая производит ошибку: Uncaught SyntaxError: Unexpected number

Изменение кода object3 «s в (меняющийся ключи от номеров в строки):

var object3 = new Object(); 
object3.'1' = 2; 
object3.'7' = 3; 
object3.'4' = 5; 

создает ошибку: Uncaught SyntaxError: Unexpected string

Возможно ли создать object3 с использованием этого шаблона/макета для создания значений object1 или может ли ключ никогда не быть числом или строкой? Строка, но не число для ключа, работающего при создании object2.

+1

Имя свойства не может начинаться с цифры с помощью «точка '. object3._1 будет работать, однако, поскольку подчеркивания (а также $ и алфавитные символы) являются юридическим синтаксисом. –

ответ

2

При использовании точечную нотацию, ключи должны быть названы таким же образом переменные (начинается с буквы или _ и содержит только буквы, цифры и _).

Если ключ не является допустимым для использования в качестве точечной нотации, то его можно использовать с помощью брекет обозначения так:

obj["key goes here"]; 

С 1, 7 и 4 не действительны для точечной нотации, то единственный способ использовать их в качестве ключа: obj["4"] ...

Описание: MDN page об основах объектов.

Пример:

Эти ключи действительны для точечной нотации:

abc; 
_a; 
R2D2; 
_; 
_0; 
a________a; 

Thes не:

k-ey; 
a b a; 
99; 
k.e.y; 
@@; 

 Смежные вопросы

  • Нет связанных вопросов^_^