我正在数组上实现 .every 函数。我在一个旧的 javascript 引擎环境中,下面的函数并没有让编译器太高兴(Rhino)。JavaScript 的版本是 ECMA 262 标准 JavaScript 1.5。
但是,Mozilla 提供的使.ever向后兼容的代码似乎在引擎中不起作用,所以我试图实现一个更简单、功能更少的版本。因此,我想了解脚本是如何工作的,以便进行所需的调整。
我的问题; 我怎样才能实现一个极不复杂的下面的版本,它可以保证与 JS 1.5 一起工作?
if (!Array.prototype.every)
{
Array.prototype.every = function(fun /*, thisp */)
{
"use strict";
if (this == null)
throw new TypeError();
var t = Object(this);
var len = t.length >>> 0;
if (typeof fun != "function")
throw new TypeError();
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in t && !fun.call(thisp, t[i], i, t))
return false;
}
return true;
};
};