非常向后兼容。每个功能

时间:2013-03-01 12:28:23

标签: javascript rhino ecma262

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

1 个答案:

答案 0 :(得分:0)

该功能适用​​于JS 1.5。我解决了其他问题,当我修复它们时。每个工作都应该如此。

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