324*_*423 1 javascript browser functional-programming
我最近一直在用Javascript查看函数式编程,我是一个菜鸟.
在编写一些'map','reduce'和'find'函数时,我发现从JS 1.5版开始,这些函数已经可用(参见https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array)
然而,我对这些函数旁边感到困惑(即减少)它说'需要javscript 1.8' - 但它在1.5文档中?怎么会这样 ?
还有人有一个列表,在所有主要的浏览器,他们正在运行的javascript版本?
如果我想在我的web项目中使用函数式编程,我应该使用哪种方法?我应该包含函数库还是可以依赖浏览器实现?
除非您知道您的用户库是100%firefox 3,否则您将无法依赖这些方法的内置实现.
但是,您可以使用它们可能已经存在的想法对您的实现进行编码,如文档中所示
if (!Array.prototype.map)
{
Array.prototype.map = function(fun /*, thisp*/)
{
var len = this.length >>> 0;
if (typeof fun != "function")
throw new TypeError();
var res = new Array(len);
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in this)
res[i] = fun.call(thisp, this[i], i, this);
}
return res;
};
}
Run Code Online (Sandbox Code Playgroud)