Мои задачи по Javascript
Случайная задача
Список всех задач

Задача 6

let Test = function() {
	this.num = 5;
	return { num: { valueOf: function() { return 2; } } };
};

let x = Test();

let y = new Test();

console.log(y.num + x.num); // ? 
Что выведет консоль?
1
2
3
4
5
6
7
8
9
10
← Задача 5Задача 7 →
Пояснение Если в функции-конструкторе всё-таки есть return, то при вызове конструктора даже вместе с оператором new поведение может измениться.
Если в return возвращается объект, то возвращается именно он, т.е. вместо нового объекта, которому бы через this.prop = some; заполнились бы свойства.

Если бы вместо строки
return { num: { valueOf: function() { return 2; } } };
была бы строка return 5;
то, такой return бы проигнорировался при вызове конструктора с оператором new.

Кстати, после выполнения кода из задачи в объекте window создалось свойство num со значением 5.



Написать сообщение - отзыв, пожелание и т.п.