我有一个使用Array.find()
的项目。由于并非所有浏览器都支持,因此我需要找到此方法的所有用法,以使用lodash _.find()
方法替换它们。
是否有可能以某种方式分析代码并找到ECMAScript 2015之前JavaScript中没有的方法?
答案 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调用。
正如我所说,如果你可以避免它,我特别建议不要触摸原型,但这会给你带来的结果。