什么是递归?
函数内部调用函数自己
递归的本质是栈
递归的作用?
1,遍历DOM树,实现阶乘
2,在不确定数据的深度情况用递归
递归注意事项?
1,一定要有结束条件不然会造成死循环
2,arguments.callee指向正在执行的函数的指针,用他可以实现函数的递归调用
递归的好处?
1,代码简洁
2,可读性好
递归的坏处?
1,递归算法效率低,在递归调用过程中,系统会为每一层的返回点,局部量等开辟了栈来存储
2,次数过多容易造成栈溢出
关于this指向(call、apply、bind)?
相同:都是改变this指向,第一个参数都是this要指向的对象
call(this要指向的对象,...目标函数的参数)
apply(this要指向的对象,[...目标函数的参数])
bind(this要指向的对象,...目标函数的参数)() // 创建一个新的函数必须手动调用