主要分为以下四种情况
1.方法调用模式
当一个函数被保存为对象的一个属性时, 我们称它为一个方法, 当一个方法被调用时, this指向该对象, 如:
1 | var obj = { |
注意: 该模式中, this到对象的绑定发生在方法被调用的时候.
2.函数调用模式
当一个函数并非一个对象的属性时, 它被当作一个函数来调用, 此时的this指向全局对象(window), 如:
1 | window.value = 1; |
3.构造器调用模式
结合new前缀调用的函数被称为构造器函数, 此时的this指向该构造器函数的实例对象, 如:
1 | function show(val) { |
4.apply/call调用模式
apply和call方法可以让我们设定调用者中的this指向谁, 如:
1 | var fun = function(str) { |