0
我有一個項目,其中使用Array.find()
。由於它不被所有瀏覽器支持,我有一個要求找到這種方法的所有用法,用lodash _.find()
方法替換它們。如何查找JS代碼中僅適用於ES2015的方法?
是否有可能以某種方式分析代碼並找到在ECMAScript 2015之前JavaScript中不可用的方法?
我有一個項目,其中使用Array.find()
。由於它不被所有瀏覽器支持,我有一個要求找到這種方法的所有用法,用lodash _.find()
方法替換它們。如何查找JS代碼中僅適用於ES2015的方法?
是否有可能以某種方式分析代碼並找到在ECMAScript 2015之前JavaScript中不可用的方法?
我不會推薦觸摸原型,如果你能避免它,你可以做什麼卻是在頁面加載測試,看看
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})
會使用數組返回4。發現如果支持在瀏覽器或做:
_.find(test, function(n){return n > 3})
如果Array.find是在瀏覽器不支持的,這將避免你需要改變所有的Array.find電話以及手動。
正如我所說我不特別推薦觸摸原型,如果你可以避免它,但這會給你你後面的結果。
作爲一種替代方案,除非需要支持IE8,否則只需使用Object.defineProperty在Array.prototype上創建一個不可枚舉的方法即可簡單地填充/填充Array.find。 –
現在的問題是它是作爲一個polyfill生成的,我想刪除polyfill並使用lodash。 –
看不到多少指向,但顯然我沒有完整的圖片。 –