如何在JS代码中找到仅在ES2015中可用的方法?

时间:2016-11-17 09:15:54

标签: javascript lint

我有一个使用Array.find()的项目。由于并非所有浏览器都支持,因此我需要找到此方法的所有用法,以使用lodash _.find()方法替换它们。

是否有可能以某种方式分析代码并找到ECMAScript 2015之前JavaScript中没有的方法?

1 个答案:

答案 0 :(得分:-1)

如果可以避免原型,我建议您不要触摸原型,但是您可以做的是在页面加载测试中查看是否

Array.prototype.find

未定义。如果是,您可以将其替换为:

if(Array.prototype.find == undefined){
  Array.prototype.find = function find(n){
    return _.find(this, n)
  }
}

确保在加载lodash之后运行这个脚本。

这意味着你可以保持相同的语法,如果没有定义Array.prototype.find,它会用你的lodash版本替换它,例如:

var test = [1,2,3,4]
test.find(function(n){return n > 3})

如果在浏览器中支持,则使用Array.find返回4或执行:

_.find(test, function(n){return n > 3})

如果浏览器中不支持Array.find,这将避免您需要手动更改所有Array.find调用。

正如我所说,如果你可以避免它,我特别建议不要触摸原型,但这会给你带来的结果。