普通函数:
1.this指向直接调用该函数的对象,例如:obj.fn obj调用fn函数,该this为obj对象。
2.如果没有直接调用对象,该this在严格模式下指向为undefind,默认模式下该this指向为window对象。
3.使用call,apply,bind绑定的this,this指向绑定的对象。
var obj = { num:1, func: function() { console.log(this.num) }, say: function () { var that = this; //此时的this就是obj对象 setTimeout(function () { console.log(this) // 该this为window对象 如果使用箭头函数this就指向obj that.func() }); } } obj.say();
箭头函数:
箭头函数没有自己的this, 它的this是继承而来; 默认指向在定义它时所处的对象(宿主对象),而不是执行时的对象, 定义它的时候,可能环境是window; 箭头函数可以方便地让我们在 setTimeout ,setInterval中方便的使用this