我正在開發第三方小部件,我的js使用本機reduce功能。使用原生減少,而不是原型1.6.0.3減少
但是,當我放入客戶頁面時,它具有原型1.6.0.3庫,並且它覆蓋了做某件事情的完全意想不到的reduce函數。
我該如何爲我的JS使用本地reduce而不是?
感謝
我正在開發第三方小部件,我的js使用本機reduce功能。使用原生減少,而不是原型1.6.0.3減少
但是,當我放入客戶頁面時,它具有原型1.6.0.3庫,並且它覆蓋了做某件事情的完全意想不到的reduce函數。
我該如何爲我的JS使用本地reduce而不是?
感謝
要擴大弗洛朗的評論:
<script type="text/javascript">
Array.prototype.nativeReduce = Array.prototype.reduce;
</script>
<script type="text/javascript" src="/path/to/prototype.js"></script>
現在你可以這樣調用本機減小方法:
var x = [];
x.nativeReduce(...);
問題是,作爲第三方JS,我無法控制客戶端將我的腳本放在prototype.js之上或之下的位置 – Cleyton
,我找到的解決方案是使用。降低功能實施於https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
並重命名它減少Ext,以免弄亂業主頁面中的現有庫。
將Prototype存儲在一個變量中,然後重置'reduce'。 – Florent
問題是,作爲第三方JS,我無法控制客戶端將我的腳本放在哪裏,高於或低於prototype.js – Cleyton
您是否可以請求將PrototypeJS更新爲1.7.1?在覆蓋它之前,該版本檢查本地reduce是否存在並修復其他許多錯誤。 –