我在數組上實現了.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;
};
};
'every'?這與「each」相同嗎? – PeeHaa 2013-03-01 12:30:07
你在想每個jQuery或_js嗎?我只見過在js – Phil 2013-03-01 12:31:04
@PeeHaa原生實現的數組中的每一個數組我相信'every'會對數組中的每個元素應用一個回調函數,並在所有元素從回調函數返回一個真值時返回'true'。 – 2013-03-01 12:31:25