-
函数模式
直接调用函数的方式,this指向的全局对象window.
function fn() { console.log(123) } fn()
-
方法模式
函数作为对象的方法调用,this指向当前的对象.
var o = { prop: 21, f:function() { return this.prop; } }; console.log(o.f());
-
构造器模式
通过new调用构造器的方式,this指向当前构造函数的原型.
function MyClass() { this.a = 21; } var o = new MyClass(); console.log(o.a);//21
-
上下文模式
通过apply或call的方式,这两个的第一参数即this,当第一个参数为null,this指向window;当第一个参数为一个对象,this就指向当前这个对象