js:为什么要使用Array.prototype.map.call而不是map()?

yar*_*rek 1 javascript arrays

这是casperjs JS的一个例子:

function getPrices() {
  var price = document.querySelectorAll('#InvoiceDetailGrid tbody');
  return Array.prototype.map.call(price, function(elem) {
    return elem.textContent;
  });
}
Run Code Online (Sandbox Code Playgroud)

为什么使用Array.prototype.map.call:不可能简单地使用: price.map()

Nin*_*olz 5

因为price是类数组(NodeList)对象,而不是数组.

使用Array.prototype.map,您将采用Array方法并使用类似数组的对象作为映射对象.

  • 是.基本上你从Array借用了这个方法. (2认同)