[问题] 增加prototype function

楼主: RichieRich (Richie)   2021-01-06 17:01:20
小弟为了能让 ie8可支持array新的function如map,filter...
if (!Array.prototype.forEach) {
Array.prototype.filter = function(callback/*, thisArg*/) {....
可是当我作in例举的时候 会把这些function也例举出来
例如
for(var key in [1,2,3])
{
console.log(key);
}
0,1,2,map,filter
是不是这样自已加的function就不能用in这个东西?除非要自已过滤?
不然就无解?
谢谢
作者: mrbigmouth (大嘴先生)   2021-01-07 10:45:00
用Object.defineProperty给prototype加filter方法然后加上enumerable: false欸 ie8的defineProperty只能用在DOM上?https://github.com/es-shims/es5-shim 参考一下
作者: brianwu1201 (bunny29)   2021-01-07 11:18:00
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty关键字 hasOwnProperty 查一下

Links booklink

Contact Us: admin [ a t ] ucptt.com