对于像 Array 这样的 JS 核心对象,我有一些小而有用的额外方法:
Array.prototype.indexOfObject(属性,值)
此方法返回(对象)数组中对象的索引,其中属性==值,对我来说简单而高效。
但是,当我枚举任何数组时,该方法会出现,所以每次我必须这样做:
for(var i in MyArray){
if(typeof(MyArray[i])=="typeneeded"){
// do something
}
}
据我所知,defineProperty 制作了一个不可枚举的方法,因此当所有浏览器都接受它时,它将解决我的问题。顺便说一句,使用defineProperty已经安全了吗?IE9 好用吗?其它浏览器?有第三种方法吗?