Как я могу получить «это = это» в работе прототипа

Хорошо, Пип, так что я знаю, что это плохая практика - связываться с прототипами, но здесь это все равно ...

Array.prototype.rev=
    function(){
        this.reverse();
    }

Работает отлично! Обновляет переменную исходного массива,aryкак ожидается, например:

ary = [123, 456];
ary.rev();

// result:  ary == [456, 123]

Моя проблема возникает при написании аналогичного свойства дляString.

То, что я хотел бы сделать, это что-то вроде этого ...

String.prototype.rev=
    function(){
        this.split('');
        this.reverse();
        this.join('');
    }

Кажется, достаточно просто правильно! Разбейте строку, переверните ее и соедините вместе, чтобы получить исходную строковую переменную,str, является противоположностью своего прежнего я, как было сary выше!

Дело в том, что хотяthis.split() был вызван, его нужно сохранить как переменную, то есть:

split = this.split('');

И там в ложьthis = this проблема ...

Сейчасsplit определяется, это отвлекает внимание от редактирования исходной переменной, и это не так, как я могу просто сказать в конце функции:

this = split;

Какthis является «неизменным» или что это такое, когда они имеют в виду, что оно статично и неизменно?

Приступая к делу! У меня вопрос такой ...
str = 'abc'

Я хочу быть в состоянии сказатьstr.rev() неstr = str.rev() и получить результатstr = 'cba' гдеstr === 'cba'лови мой занос ?!

Все обходные пути и обучение приветствуются, я просто спрашиваю, что ты знаешь, о чем ты говоришь. Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос