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