Что ж, создание объекта с новым ключевым словом даст вам ... объект, очевидно. Чтобы вернуть строку, встроенную в вашу пользовательскую реализацию строки, вам понадобится что-то вроде этого:
class MyString {
constructor(str){
this.content = str;
}
getString(){
return this.content;
}
}
И использование:
var s = 'hello';
var strObj = new MyString(s);
var ss = s.getString();
console.log(s == ss); //true
Это потому, что вы сконструировали свой объект так, как будто это поле для вашей строки. Метод getString действует так, как будто вы распаковываете пакет и получаете обратно строку. Вот почему они равны на данный момент (потому что ни один из них не изменился между построением MyString и простой строкой).
Этот метод для создания getSomething называется getter, и аналогично setSomething называется setter, где setter не получает любые данные вне объекта, но устанавливающие что-то внутри него.
Конечно, есть способ изменить и тип строки, чтобы он мог выполнять ваши задачи и содержать ваши собственные методы, но, честно говоря, я не думаю, что это важно, ни удобно вам в данный момент. Тем не менее, проверьте прототип / прототипирование, если хотите. Удачи, братан!