箭头函数中的this
先来简单理解一下什么是this?
this表示当前对象,this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象。
也就是说this的最终指向的是那个调用它的对象
在严格模式中this默认指向undefined。
匿名函数的执行环境具有全局性,因此其this对象通常指向window

例:
var a = 'window'
obj = {
a:'obj1',
func:function(){
console.log(this.a);
}
obj2
obj.func() // 'obj1' func函数被obj对象调用,所以this表示的是obj对象
var otherObj = obj.func //将func函数赋给新的变量
otherObj() // 'window' func函数没有显性地被任何对象调用,因此this默认等于window对象
otherObj.call(obj2) //'obj2' call方法将this引用到obj2对象上,因此this等于obj2
箭头函数
箭头函数没有自己的this,因此它们的this是引用外层代码块的this。在初始化的时候this的指向就被固定了,因此它是静态的。
- 
不可以当作构造函数,也就是说,不可以对箭头函数使用new命令,否则会抛出一个错误。
 - 
不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
 - 
不可以使用yield命令,因此箭头函数不能用作 Generator 函数。
 
未完待续~~
                    
                
                
            
        
浙公网安备 33010602011771号