Есть две причины, по которым следующий код не будет работать. this
не является переменной, это свойство контекста выполнения (глобального, функции или eval), которое в нестрогом режиме всегда является ссылкой на объект, а в строгом режиме может принимать любое значение. Синтаксически недопустимо присваивать ему что-либо.
Но, что более важно, невозможно реализовать метод мутации в интерфейсе String, поскольку строки, логические значения и числа являются неизменяемыми в Javscript, согласно спецификации ECMAScript , Когда вы «мутируете» значение, например, в контексте x += 5
, за кулисами вы создаете новое значение, а не изменяете исходное.