代码改变世界

4中调用模式

2017-09-18 09:50  Fred发  阅读(94)  评论(0)    收藏  举报
  • 函数中的this,调用方式不同,指向不同

  • this与调用有关,与定义无关

函数调用模式

  • 函数名() || (function(){}()) ==> window

方法调用模式

  • 对象.方法名() || 对象方法名 || 祖对象.父对象.子对象.方法名() ==> 宿主对象

构造器调用模式

  • new 构造函数() || new 对象.构造函数() ==> new出来的新实例

间接调用模式(上下文调用模式)

  • call

    • 函数.call(指定的this,实参1,实参2,...)

    • 对象.方法.call(指定的this,实参1,实参2,...)

  • apply

    • 函数.apply(指定的this,[实参1,实参2,...])

    • 函数.apply(指定的this,{0: 实参1, 1:实参2, length: 2})

    • 对象.方法.apply(指定的this,[实参1,实参2,...])