为了账号安全,请及时绑定邮箱和手机立即绑定

类数组调用数组的map方法实现方式

类数组调用数组的map方法实现方式

噜噜哒 2018-12-13 14:13:43
发现一个问题,如题,代码如下:var l = document.getElementsByClassName("list")[0].children;//我获取了页面上一个ul下的li集合        var b = Array.prototype.slice.call(l);//复制l类数组,并添加数组方法到新数组上(这是第一种方式,可以成功调用map方法)        var arry = [...l];);//直接转换为数组(这是第二中方式,也能成功调用)        var r = Array.prototype.map.call(l);//问题在这里了,不复制类数组,而直接添加数组方法,失败,并报错:“Uncaught TypeError: undefined is not a function at HTMLCollection.map (<anonymous>)“//        var r = [].map.call(l);//这也是第三种方式的变形,同样失败        function add(that){            var s = that.innerHTML;            that.innerHTML=s+1;        }        arry.map(add);//成功        b.map(add);//成功        r.map(add);//失败我的疑惑是为什么第三种方式失败了,可是我在:博客文章这篇文章上发现,貌似他同样也是用这种实现的啊:他的方式一:NodeList.prototype = Array.prototype;他的方式二:Array.prototype.map.call(links,function(e){}),如果确实是我的代码又问题,望大神帮忙指出并优化
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 409 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信