我正在数组上实现.every函数。我在一个旧的javascript引擎环境中,下面的函数没有让编译器太开心(Rhino)。 javascript的版本是ECMA 262标准JavaScript 1.5。
然而,Mozilla提供的代码使 .every 向后兼容似乎在引擎中不起作用,所以我试图实现一个更简单,功能更少的版本。因此,我想了解脚本的工作原理,以便进行必要的调整。
我的问题;我怎么能实现一个非常复杂的以下版本,保证与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;
};
};
答案 0 :(得分:0)
该功能适用于JS 1.5。我解决了其他问题,当我修复它们时。每个工作都应该如此。
当然有点尴尬,但我做了一些很好的研究,以其他方式帮助我,谢谢这个问题!