为什么你不能 Array.prototype.pop.call() 一个字符串?
Why are you unable to Array.prototype.pop.call() a string?
据我了解,一些 Array 方法可以通过使用
call 方法。在回答这个问题时:
Remove last forward slash from href anchor
我遇到了一个我没有预料到的问题。如果没有收到此错误,我无法在字符串上使用 pop.apply()
;
"message": "Uncaught TypeError: Cannot delete property '39' of [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>
并不是所有的数组方法都可以在数组上使用。那些试图改变字符串的方法将不起作用。在 Javascript 中,字符串是不可变的。所以像push
、pop
、shift
、splice
这样的方法是行不通的。
据我了解,一些 Array 方法可以通过使用 call 方法。在回答这个问题时:
Remove last forward slash from href anchor
我遇到了一个我没有预料到的问题。如果没有收到此错误,我无法在字符串上使用 pop.apply()
;
"message": "Uncaught TypeError: Cannot delete property '39' of [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>
并不是所有的数组方法都可以在数组上使用。那些试图改变字符串的方法将不起作用。在 Javascript 中,字符串是不可变的。所以像push
、pop
、shift
、splice
这样的方法是行不通的。