在准备讲课内容的时候在MDN上看到了这个
开始想着Array.prototype.map.call写这么长是不是就是为了逼格啊。
就连他的标题这么长,我都以为是在装杯。结果是俺草率了。标题这么写的意思是map是Array原型上的一个方法
var elems = document.querySelectorAll('select option:checked');
var values = Array.prototype.map.call(elems, function(obj) {
return obj.value;
});
这里逐步分析一哈, Array.prototype.map是调用了Array原型的方法,call方法说明elems是借用了map这个方法。
稍微那么一思考,其实就是document.querySelectorAll获取的是个NodeList,他本身不能调用Array方法,他的原型里面又没有map这个方法,所有要调用array原型的map方法。
思考:其实这个map方法看了好几遍了,刚开始看到这个Array.prototype.map.call这么老长就直接略过了,还有就是学习的时候还是多差文档, 博客只能在文档上查不到的时候再去看。