Почему вы не можете Array.prototype.pop.call () строку? - PullRequest
0 голосов
/ 01 мая 2019

Насколько я понял, некоторые методы Array можно использовать в строках с помощью метода call .При поиске ответа на этот вопрос:

Удалить последнюю косую черту с якоря href

Я столкнулся с проблемой, которой я не быложидая.Я не могу использовать pop.apply() в строке без получения этой ошибки;

"message": "Uncaught TypeError: Невозможно удалить свойство '39' из [object String]"

Почему это не удалось и почему работают только некоторые методы массива?

let href = $('.anchor').prop('href');
Array.prototype.pop.call(href);

console.log(href);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="https://example.com/my-account/#example/" class="anchor">...</a>

1 Ответ

1 голос
/ 01 мая 2019

Не все методы массива могут быть использованы в массиве.Те методы, которые пытаются изменить строку, не будут работать.В Javascript строки неизменны.Поэтому такие методы, как push, pop, shift, splice, не работают.

...