met*_*ion 2 javascript prototype
我经常想使用forEach或map遍历NodeList。我的简化代码如下所示:
var nodeListMap = Array.prototype.map;
var els = document.querySelectorAll('.classname');
nodeListMap.call(els, function(el){...});
Run Code Online (Sandbox Code Playgroud)
这很好。但是,我不想不必这样做map.call,但是如果我这样做的话...
var nodeListMap = Array.prototype.map.call;
var els = document.querySelectorAll('.classname');
nodeListMap(els, function(el){...});
Run Code Online (Sandbox Code Playgroud)
然后返回
TypeError: object is not a function
Run Code Online (Sandbox Code Playgroud)
我怎样才能修改代码,让我简单地做nodeListMap(array, fn)呢?
我遇到了同样的问题,我使用ES6的超级简单解决方案是:
const els = [...document.querySelectorAll('.classname')]
Run Code Online (Sandbox Code Playgroud)
这样,nodeList成为常规Array,您可以使用map,reduce依此类推。