功能性javascript和web浏览器javascript版本

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项目中使用函数式编程,我应该使用哪种方法?我应该包含函数库还是可以依赖浏览器实现?

Pet*_*ley 6

除非您知道您的用户库是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)