1.remove源码方法
remove: function(object) {
// arguments对象表示所有参数组成的数组
if (arguments.length > 1) {
// 循环遍历 每一个参数对象执行remove删除方法
for (var i = 0; i < arguments.length; i++) {
this.remove(arguments[i]);
}
return this;
}
// 获得object在children数组中的索引
var index = this.children.indexOf(object);
if (index !== -1) {
// 设置object的父对象属性parent为null空
object.parent = null;
object.dispatchEvent({
type: 'removed'
});
// 删除children数组中索引是index的元素
this.children.splice(index, 1);
}
return this;
},
2.官方中文文档解释
调用形式可以是如下两种:
parent.remove(box1) // 一次性删除一个
parent.remove(box1, box2) // 一次性删除多个
3.核心代码说明
4.总结
- 递归调用
- 移除一个子级的三行核心代码