如果我想从一个数组原型(比如 forEach)中调用一个函数,比如 NodeList,那么最好的选择是什么?
[].forEach.call(collection, function (element) {});Array.prototype.forEach.call(collection, function(element) {});
假设在第一种情况下,数组构造函数将起作用。第二种情况不受此影响。是这样吗?
如果我想从一个数组原型(比如 forEach)中调用一个函数,比如 NodeList,那么最好的选择是什么?
[].forEach.call(collection, function (element) {});
Array.prototype.forEach.call(collection, function(element) {});
假设在第一种情况下,数组构造函数将起作用。第二种情况不受此影响。是这样吗?
根据规范,第一种情况会发生以下情况:
forEach:失败forEach原型中的查找属性:OK在第二种情况下:
ArrayprototypeforEach但是,值得注意的是,根据具体的实现和各种优化,两个示例可以简化为同一件事。
如果进行测量,有些浏览器可能会显示出细微的差异,而有些浏览器(例如chrome)显示的差异在于误差量。
因此,问题是:选择哪种方法更好?你可以给出一个答案:从上面 - 任何。
也可以直接
NodeList使用新添加的方法进行迭代。forEach