0

我正在数组上实现 .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;
    };
};
4

1 回答 1

0

该函数适用于 JS 1.5。当我修复这些问题时,我遇到了其他问题。

当然有点尴尬,但由于这个问题,我做了一些很好的研究,在其他方面帮助了我!

于 2013-03-01T12:40:43.507 回答