Нет, строковый литерал, подобный тому, который вы возвращаете ("hii"
), является примитивным значением не является объектом.
В JavaScript у нас есть следующие примитивы: строка,число, логическое, неопределенное и нулевое.
Если конструктор, используемый с оператором new
, возвращает примитив, будет возвращено значение this
.
Если объект возвращается, например,во втором примере (который IMO не очень полезен) вновь созданный объект (this
в конструкторе) будет потерян, и вы получите ошибку, поскольку он не содержит свойства с именем getDetails
.
Например:
function Test () {
// don't return anything (equivalent to returning undefined)
}
new Test() instanceof Test; // true
function Test2 () {
return {};
}
new Test2 instanceof Test2; // false