我正在开发支持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