我想向javascript的数组对象添加原型函数。Javascript - 原型函数名称作为关联数组的键返回
我遇到的问题是,当我按下数组的键时,原型函数的名称出现在数组的键中。
下面是一个示例来说明问题:
<html> <head> <script type="text/javascript"> Array.prototype.foo = function() { // do something } function keys() { var fruit = ["apples","pears","bannanas"]; for (key in fruit) alert(key); // alerts: 0, 1, 2, foo } </script> </head> <body onload="keys();"> </body> </html>
我如何能解决这个得到任何想法?
我不要有原型的功能,但从可读性的角度来看,我宁愿。
编辑:只要是明确的,现实世界中实现上面的例子中迭代通过关联数组,因此for..in循环
编辑:感谢您的答复球员,但我认为,你错过了我所追求的。我想知道的是,我是否可以将一个原型函数添加到javascript的数组对象中(或者以不同的方式声明具有相同效果的函数),而不必在通过一个for ..在循环中。以indexOf
函数为例。 Javascript似乎在内部定义它,使得它不会出现在对象/数组的键中(对吗?)。运行时可以重现这种相同的行为吗?
不要使用'for ... in'来遍历数组。使用普通的'for'循环,然后你就不会有这个问题。 –
是的,除非它是一个关联数组 - 我不知道如何在不使用for..in循环的情况下遍历关联数组的方法.. –
或者你可以做到,但检查类型不是函数 if(fruit [key] .constructor!= Function) – Marwan