Есть такой кусочек кода.
var obj = {
a: 1
};
console.log(obj.s)
Как я понимаю, я создал один объект. Под него зарезервировался кусочек памяти, в который поместили поле a
со значением равным 1. Т.е. больше в этом кусочке памяти ничего нет. Соответственно, при console.log(obj.s)
я ожидал увидеть в консоли ReferenceError. Однако при обращении к несуществующему полю выводит undefined, как будто поле s
у объекта есть, но ему не присвоено значени.
Что я упустил в своих рассуждениях?
Вы инициализировали объект obj
с параметрами {a: 1}
. Получается что объект obj
существует, и вы можете из любой точки кода, после его объявляения создать\удалить\изменить любое любое его свойство(которое разрешено менять). К примеру:
var obj = {
a: 1
};
obj.hello = 'Hello!';
console.log(obj); // Выведет: {a: 1, hello: 'Hello!'}
В вашем случае вы выводите console.log(obj.s)
, когда s
вы еще не определили, что и означает undefined
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как удалить блок, например, с классомclass1? При скролле страницы вниз или вверх
Доброй ночиЕсть выпадающее меню и по плану когда наводишь на Produst - Desctop cправа должно появится скрытое подменю drop-menu2
Имеется одиночный класс с одной виртуальной функцией, не чисто-виртуальной
Пытаюсь получить доступ к элементу массива через его указатель, объявленный как shared_ptr так: