递归, 原型,原型链

198 阅读1分钟

什么是原型?

  1. 原型:每个函数都会自动附带一个属性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)
}