примитивных типов данных я не должен добавлять элементы в массив, как это:добавление свойств к другим, чем массив
var b = [];
b.val_1 = "a";
b.val_2 = "b";
b.val_3 = "c";
Я не могу использовать собственные методы массива и почему не просто объект. Я просто добавляю свойства к массиву, а не к элементам. Я полагаю, это делает их параллельными с свойством length
. Хотя попытка сбросить длину (b.length = "a string"
) получает Uncaught RangeError: Invalid array length
.
В любом случае, я все еще могу видеть свойства, которые я указал, как это:
console.log(b); //[val_1: "a", val_2: "b", val_3: "c"]
я могу получить доступ к нему, используя точечный синтаксис:
console.log(b.val_1); //a
Если массив это просто объект таким же образом, что строка или число - это объект, почему не может (не то, что я хотел бы). Я прикрепляю к ним свойства с помощью этого синтаксиса:
var num = 1;
num.prop_1 = "a string";
console.log(num); //1
я не могу получить доступ к его свойства, используя точечный синтаксис
console.log(num.prp); //undefined
Почему это может быть сделано с массивом, а не с другими типами данных. Для всех случаев я должен использовать {}
, и мне понадобится только {}
, так почему же у них есть эта способность?
Почему использование конструктора имеет значение? – 1252748
@thomas Поскольку при использовании конструктора возвращается числовой объект, как вы можете видеть, набрав 'console.log (typeof num)'. –
Каким будет преимущество при создании нового номера объекта? Есть ли причина, по которой новый Number() не создает примитивный номер? – 1252748