Wartość zwracana przez obiekt utworzony za pomocą własnego konstruktora

0

Witam. Próbuję stworzyć konstruktor podobnie działający jak wbudowany obiekt String.

function myString(word){
  this.word = word;
  return this.word;
}

Jako parametr podaję jakiś łańcuch znaków:

let a = new myString('tekst');

Chciałbym żeby po wywołaniu obiekt zwracał podany string.

<<a;
>>myString {word: "test"}

Jednak zwraca sam siebie. Co obiekt/funkcja myString powinien zwracać żeby uzyskać taki wynik ?

0
function myString(word) {
     return word;
}

myString('test')
1

Cała istota operatora new polega na tym, że tworzony i zwracany jest obiekt.

Jeśli nie chcesz takiego zachowania, nie wykorzystuj new.

1

Można zrobić tak:

function MyString(word) {
  this.word = word
}

MyString.prototype.toString = function() {
  return this.word
}

const example = new MyString('World')

console.log(`Hello ${example}!`) // => "Hello World!"

Tylko na co to komu?

1 użytkowników online, w tym zalogowanych: 0, gości: 1