【第7周 02 DOM 3-13 节点封装函数】麻烦问下o=node为什么还要再写一遍?
来源:3-13 封装节点关系函数
easyschen
2021-12-03 19:26:46
问题描述:
老师麻烦看下问题: 第三个封装函数的问题
Q1:o = node 为什么要写第二遍?
A1:我的理解的是执行了前面一句o=o.previousSibling,将o变成了前面一项。
所以找next的时候,要将o还原成刚开始的node。是这样吗?
Q2:箭头地方,函数3没有return语句,是否o在最后都会变成o.previous... ?
函数2有return,return执行的话,o就不会变成previous...吧
Q3:最后concat的部分,是否少个node,应该是prevs + node(o) +nexts?
A3:经过o = o.previous. o = o.next.
o已经变成了prevs[ ]的末尾 和next[ ]的开头一项。是这样吗?
老师麻烦看下我理解的对吗?
相关截图:
第二个函数封装 previousElementSibling
第三个函数封装
1回答
好帮手慕久久
2021-12-04
同学你好,解答如下:
1、如下理解是对的:
2、函数3中的o,会变成o.previousSibling,因为代码会执行赋值语句:
函数2有return,但是如果代码执行了if下面的语句,o也会变成o.previousSibling:
即代码只要执行了赋值语句(o=xxx),就会改变o的值。
3、返回结果(concat部分),不能包含node。因为函数是获取node的兄弟元素,兄弟是不包含自己的。
代码执行过程中,o会变成node的前一项、前两项.......、后一项,后两项......,通过o就能把node前面的兄弟元素、后面的兄弟元素都获取到。
祝学习愉快!
相似问题