JavaScript函数的四种调用模式

  • 函数调用模式

  • 单独独立调用的就是函数:函数名(参数)

  • 任何自调用函数都是函数模式

  • this表示全局变量

  • 方法调用模式

  • 方法本身也是函数,但是方法不能单独调用,而是通过一个对象引导调用:对象.方法(参数)

  • this表示引导方法的对象

  • 构造器模式

  • 需要使用new关键字引导调用。

  • new 是一个运算符, 专门用来申请创建对象, 创建出来的对象传递给构造函数的 this

  • return返回值
    - 如果不写return语句,那么构造函数默认返回this
    - 如果构造函数中写上return语句,并且紧跟的是 基本数据类型return 123;),则忽略返回属性。
    - 如果构造函数中写上return语句,并且紧跟的是 引用类型 那么构造函数返回引用类型数据,忽略 this

  • 上下文模式

  • 不同环境下的不同调用模式(有统一的一种格式,可以实现函数模式与方法模式)

  • 语法(call与apply功能完全一样,区别在于参数不同)
    - call形式 -----> 函数名.call(参数1,参数2,参数3...);
    参数1:如果是null则为函数调用{函数名.call(null)/函数名.call()},如果为对象就是宿主对象,则为方法调用;
    参数2,参数3....:就是调用函数的所有参数
    - apply形式 ------> 函数名.apply(参数1,[参数2]);
    参数1:如果是null则为函数调用{函数名.call(null)/函数名.call()},如果为对象就是宿主对象,则为方法调用;
    参数2:是一个数组参数,将函数的参数依次放入数组.

             
    
  • 补充bind方法

  • 提到 callapply 方法,这里介绍 bind 方法

  • bind 方法会预先改变 this 指向,并且可以预先存入部分参数。

         

你可能感兴趣的:(JavaScript函数的四种调用模式)