什么是原型?
- 原型:每个函数都会自动附带一个属性prototype,这个属性的值是一个普通对象,称之为 原型对象。
什么是原型链
任何对象都有原型对象,也就是prototype属性,所有的对象都是通过new来创建 任何 原型对象也是一个对象,该对象就有proto属性,这样一层一层向上找,就形成了一条原型链
什么是递归?
递归,简单来说就是自己调用自己
主要有两个关键步骤:
- 写出递归公式
- 找到终止条件
举个栗子: 楼梯问题
假如楼梯有n个台阶,每次可以走1个或2个台阶,请问走完这n个台阶有几种走法❓
按照我们上面的思路,先写出递归公式。那这道题我们如何去找出递归公式呢。假设有3个台阶,我们可以有3种走法:
1 1 1
1 2
2 1
代码:
function climbStairs(n) {
if (n == 1) return 1
if (n == 2) return 2
return climbStairs(n-1) + climbStairs(n-2)
}