为什么以下原型声明不起作用?

时间:2019-12-05 09:45:49

标签: javascript arrays prototype

我已经声明了Array原型myArrayMax,并且在w3schools.com上的其他资源进行反复验证之后,代码似乎正确:

该代码用于查找给定数组中的最大数目。

但是,它不起作用,并且控制台显示以下错误消息:

  

未捕获的TypeError:points.myArrayMax不是函数

在此原型声明中找不到问题

var points = [40, 100, 1, 5, 25, 10];
document.getElementById("demo").innerHTML = points.myArrayMax();

var len, max;

Array.prototype.myArrayMax = function() {
  len = this.length;
  max = -Infinity;
  while (len--) {
    if (this[len] > max) {
      max = this[len];
    }
  }
  return max;
}
<h2>JavaScript Array Sort</h2>

<p>The highest number is <span id="demo"></span>.</p>

1 个答案:

答案 0 :(得分:4)

因为您要尝试使用Array.myArrayMax 之前,所以您实际上要对其进行定义。

var points = [40, 100, 1, 5, 25, 10];

var len, max;

Array.prototype.myArrayMax = function() {
  len = this.length;
  max = -Infinity;
  while (len--) {
    if (this[len] > max) {
      max = this[len];
    }
  }
  return max;
}

console.log(points.myArrayMax());