箭头函数

es6中的箭头函数

1、书写更简单了,而且如果函数体是一个表达式的话,不用写return,箭头函数,默认返回。

2、箭头函数解决了this的指向问题。

普通函数:根据调用我的人(谁调用我,我的this就指向谁),普通函数的this指向调用它的那个对象。

 

箭头函数:根据所在的环境(我再哪个环境中,this就指向谁)所以箭头函数的this永远指向其父作用域,任何方法都改变不了,包括call,apply,bind。

 

var obj = {
a: 10,
b: () => {
console.log(this.a); // undefined
console.log(this); // Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …}
},
c: function() {
console.log(this.a); // 10
console.log(this); // {a: 10, b: ƒ, c: ƒ}
}
}
obj.b();
obj.c();

 

var obj = {
  a: 10,
  b: function(){
    console.log(this.a); //10
  },
  c: function() {
     return ()=>{
           console.log(this.a); //10
     }
  }
}
obj.b(); 
obj.c()();

 

posted @ 2021-02-24 19:19  香香香。。。。香菜  阅读(97)  评论(0编辑  收藏  举报