Согласно официальной документации:
https://learn.javascript.ru/constructor-new#funkts... - функция-конструктор, вызывается только через оператор
new
, и приводится следующий пример:
function User(name) {
this.name = name;
}
let user = new User('Jack');
alert(user.name); // Jack
Но я, совершенно спокойно, вызываю её без оператора
new
, вот так:
function Foo(arg) {
arg = arg += ' 42';
this.bar = function() {
return arg;
};
return this.bar();
}
console.log(Foo('some string')); // > some string 42
И всё прекрасно работает.
Это глюк Google Chrome или так и должно быть? Я запутался.