Правильно. Потому что переменная computer (ее значением является объект) создана внутри функции buildComputer.
А потом вы вызываете эту функцию и создаете свой объект, и у него другое имя - myComputer. Вы можете посмотреть на него, написав вывод в консоль - console.log(myComputer);
То есть, обращаясь к свойству getDescription(), вы хотите получить доступ к свойству созданного вами объекта, а не того, что создан в функции buildComputer как каркас.
Дело не в этом. Просто вы не можете получить доступ к переменной computer за пределами функции. То есть есть разница, где вы напишете console.log(computer.getDescription()); - внутри функции buildComputer или после нее.
Ааа то есть если объект внутри функции, то он работает только внутри неё. А если внешний то и вне.
Вроде начинаю понимать.
Только не до конца поняла про то, что когда я вызываю извне функцию, то как это создает новый объект myComputer? Я ж его нигде не прописываю.
Как я понимаю myComputer - это переменная которая заменяет ВСЮ функцию сразу.
что значит запускаем объект? при вызове функции он создается и возвращается наружу. Вместо него могла быть цифра или строка, не важно, а результат выполнения функции уже присваивается переменной. Ничего запоминать здесь не нужно, нужно понять
Мм…
А если б в функции было 3 объекта и в каждом по 1 методу с одинаковым названием getDescription?
Мы бы тогда если обращались к функции было б непонятно из какого объекта берем этот метод.
var myComputer = buildComputer(8, 13, ‘i7’) - присваивает объект, т.к. функция вызывается и возвращает объект. Следовательно в myComputer присваивается то что вернулось при исполнении функции, т.е. объект computer?
var myComputer = buildComputer - здесь же присваивается функция, т.к. вызова функции нет и мы просто даем ей еще одну переменную?