的第二个参数是将作为第一个参数传递的函数Array.prototype.filter
的值this
。
因此,您的代码最终类似于:
arr.filter(function(v, i, a) {
return Object.hasOwnProperty.call("222", v, i, a);
});
因此,它基本上检查"222"
字符串是否具有您在数组中枚举的属性。
从它变得很清楚,为什么性能0
,1
以及2
被发现-因为这些是在人物的指标"222"
串,并说,9
还是{"abc":123}
不-因为"222"
字符串没有这样的特性。
较长的字符串是相同的情况,其中还包括属性4
,6
只是因为它更长。
一些例子:
Object.hasOwnProperty.call("222", 1); // true, because `"222"[1]` is there
Object.hasOwnProperty.call("222", 'foo'); // false, because `"222"['foo']` is not there
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句