我正在開發支持AJAX的asp.net應用程序。 我只是增加了一些方法應用到Array.prototype像將自定義函數添加到Array.prototype
Array.prototype.doSomething = function(){
...
}
該解決方案爲我工作,是在一個「漂亮」的方式可能重用代碼。
但是,當我測試了它與整個頁面一起工作時,我遇到了問題。我們有一些自定義ajax擴展器,它們開始表現爲意外:某些控件圍繞其內容或值顯示「未定義」 。
這可能是什麼原因?我錯過了修改標準對象原型的東西嗎?
注意:我非常肯定,當我修改陣列的原型時,錯誤開始了。它應該只與IE兼容。
我相信「for(x in y)」構造用於遍歷對象的成員。對於一個數組的基於索引的迭代,我認爲它不適合。但是,關於干擾頁面上其他代碼的觀點是有效的 - 特別是如果第三方庫以這種方式使用for-in。 – harto 2009-06-04 03:22:26
是的,反過來是正確的 - 你應該避免for..in萬一某些n00b修改了數組原型,並且你應該避免修改數組原型,以防n00b在數組中使用。 ;) – thomasrutter 2009-06-04 08:50:07