Каковы точные обстоятельства, при которых оператор return в Javascript может возвращать значение, отличное от this, когда конструктор вызывается с использованием ключевого слова new?
Пример:
function Foo () {
return something;
}
var foo = new Foo ();
Если я не ошибаюсь, если something является нефункциональным примитивом, возвращается this. В противном случае возвращается something. Правильно ли это?
IOW, какие значения могут something принимать, чтобы вызвать (new Foo () instanceof Foo) === false?