MooTools是overridding陣列原型,並且問題是,這種原型和我有外部。js(即我不能手動修改庫)使用迭代for(i in someArray)
並且拋出異常,由於現在Array有更多的屬性。任何想法如何克服這個問題?我正在考慮從Mootools庫本身的數組中移除這些屬性,但看起來並不那麼容易。MooTools的和數組原型
1
A
回答
3
首先,您應該在陣列上使用常規for(var i=0; i < arr.length; i++) { var el = arr[i]; }
循環。
如果您真的需要for..in
,並且您在現代瀏覽器中工作,那麼您可以修改原型的修改以使其不可枚舉。
//Logger function
function logArray(arr) {
console.log("--TEST-START--");
for (var i in arr) {
console.log(arr[i])
}
console.log("--TEST-END--");
}
//Modify prototype
Array.prototype.a = {
b: 0
};
//List to test against
var list = [1, 2, 3, 4];
//Log initial list
logArray(list);
//Modify prototype modificiation
Object.defineProperty(Array.prototype, 'a', {
enumerable: false
});
//Log initial list
logArray(list);
相關問題
- 1. mootools和原型衝突
- 2. Joomla中的jquery,mootools和原型
- 3. MooTools vs原型和腳本。 aculo.us
- 4. 原型/ Mootools衝突問題
- 5. 將Mootools元素拖動到原型
- 6. jquery,原型,mootools完全在magento
- 7. 你最喜歡的Mootools/Prototype原生對象原型是什麼?
- 8. 原型對象的數組
- 9. Javascript:數組,對象,排序和原型?
- 10. Rails ActiveRecord和原始類型數組
- 11. Jquery,原型,mootools和rails 3花式上傳器
- 12. Javascript - 原型函數數組
- 13. 數組原型澄清
- 14. 關於JavaScript數組原型
- 15. 數組原型打字稿
- 16. 發送數組ajax.request原型
- 17. 創建數組與原型的方法實現包裝數組原型
- 18. Symfony的配置組件:數組原型和useAttributeAsKey
- 19. Mootools addClass造型
- 20. 使用ES5墊片與jQuery/MooTools的/原型
- 21. 擴展JavaScript中的數組原型
- 22. 在數組中的JavaScript原型循環
- 23. 的Javascript自定義數組原型
- 24. 構造函數和原型
- 25. javascript函數這和原型
- 26. 呼叫數組函數原型
- 27. 原型函數污染JavaScript數組
- 28. 從Ajax到php的數組 - Ajax - Mootools
- 29. 的Object.create和原型
- 30. 在函數原型和數組中使用C
如果您可以修改您所使用的庫,你應該加上'如果(someArray.hasOwnProperty(我)!)繼續;'這些for循環。在這裏看到:http://stackoverflow.com/q/2040042/995958 –
'爲(我的someArray)如果(someArray.hasOwnProperty(I)){/ *你的代碼* /}' – ixpl0
相關:爲什麼在用「爲...在」與數組迭代一個壞主意?](http://stackoverflow.com/q/500504/4642212) – Xufox