forEach 里面调用 list.removeChild.bind(list) 怎么理解

<ul id="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>

<script>
    // 这句怎么理解
    list.querySelectorAll('li').forEach(list.removeChild.bind(list));
    
    // 等价于
    list.querySelectorAll('li').forEach(item => list.removeChild(item));
</script>
阅读 1.8k
2 个回答

bind()返回一个函数被forEach执行了,执行的时候给他传入了3个参数,第一个就是item

forEach接收一个函数,平常我们写都是匿名的函数,但是其实这个匿名函数和普通的函数没啥区别,只要是个函数,参数顺序对就行。
list.removeChild.bind(list)这个东西就是一个接收一个参数的函数,也就是相当于下面的匿名箭头函数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题