函数
一、定义
js中的函数时执行特殊任务的代码块
二、声明
1、函数表达式、构造函数、function关键字
2、区别:
1、function 声明前置
2、构造函数 需要解析两次,js代码和字符串 作用域的区别
三、调用
函数名直接调用、表达式立即执行、方法调用、构造器的实例化调用、apply/call调用
四、需要掌握的点
1、作用域和作用域链
1、静态作用域和动态的执行环境
2、call/apply/bind的区别
1、call/apply 的参数一个是数组一个是多参数
2、call/apply绑定执行环境后立即执行,bind 仅仅绑定执行环境 并未立即执行
3、函数的继承 - 函数中的原型链
1、类继承就是继承父类的prototype属性
2、实例继承继承构造函数的prototype属性
4、实例化的过程 - 函数和类
1、创建空对象obj
2、this 指向当前对象
3、设置当前对象的原型 构造函数的prototype属性
4、判断构造函数返回类型:对象返回result 否则返回创建的obj
五、高阶应用
1、高阶函数
函数作为参数传递
2、函数的柯里化
多参数函数 =》 多步骤执行