美文网首页
es6箭头函数和this

es6箭头函数和this

作者: stonehank | 来源:发表于2018-07-17 18:50 被阅读0次

es6箭头函数和this

箭头函数()=>{},没有自己的this指针,this为上一层的的this指针

function(){},有自己的this指针,this指向调用时的对象

例子:

a="windowScope"
let obj1={
  a:1,
  // 向上找不到this指针,指向window
  show:()=>{console.log('obj1:',this.a)}
};

let obj2={
  a:2,
  // this为调用时确定的对象
  show:function(){console.log('obj2:',this.a)}
};

let obj3 = {
  a:3,
  // ②function有this指针,this是调用时确定
  show :function(){
    // ①向上找到function,沿用它的this
    setTimeout(()=>{ console.log('obj3:',this.a) }, 100);
  }
};

let obj4={
  a:4,
  // ②无this,继续向上找,指向window
  show :()=>{
    // ①向上找到()=>{}
    setTimeout(() => { console.log('obj4:',this.a) }, 100);
  }
};

let obj5={
  a:1,
  show:{
    a:2,
    // 向上并未能找到带有this的词法作用域,最终指向window
    show:()=>{console.log('obj5:',this.a)}
  }
};

obj1.show(); // windowScope
obj2.show(); // 2
obj3.show(); // 3
obj4.show(); // windowScope
obj5.show.show() // windowScope

继续:

let btn=document.getElementById("btn");
// 定义的时候,向上一层寻找,指向window
btn.addEventListener('click',()=>{
    console.log(this)
})

triggerClick(btn) // window

结论:

  1. 对象方法中谨慎使用箭头函数
  2. 元素的方法谨慎使用箭头函数

相关文章

  • ES6箭头函数简介

    @(JS技巧)[ES6|箭头函数] ES6箭头函数(Arrow Functions) ES6可以使用“箭头”(=>...

  • 2019-01-11

    ES6 箭头函数 箭头函数表示法:()=>console.log('Hello') 箭头函数和普通函数的区别 和普...

  • es6全家桶(二)—— 箭头函数

    es6全家桶(二)—— rest参数、箭头函数 箭头函数 ES6 允许使用“箭头”(=>)定义函数。 var f ...

  • es6、js、css、jquery、vue以及程序设计 知识点总

    es6 列举常用的es6特性。 箭头函数this的指向。 eg:箭头函数的特性 箭头函数内部没有construc...

  • 解析ES6箭头函数中的this

    ES6中新增了箭头函数这种语法,箭头函数以其简洁性和方便获取this的特性,接下来通过本文给大家分享ES6箭头函数...

  • VUE使用axios数据请求时报错 TypeError: Can

    用ES6箭头函数,箭头方法可以和父方法共享变量

  • 箭头函数

    ES6允许使用“箭头”(==>)定义函数。 箭头函数 等同于

  • ES6箭头函数

    ES6 允许使用“箭头(=>)定义函数。箭头函数和传统的函数使用时会有一定区别,箭头函数简化了传统函数的写法,在代...

  • 学习 ES 6 箭头函数

    箭头函数的用法 ES6 允许使用“箭头”(=>)定义函数。 箭头函数的一个用处是简化回调函数。 箭头函数 this...

  • JavaScript箭头函数

    ES6新语法箭头函数 箭头函数是ES6新语法,因为语法简单、可读性好,所以使用的也很多。箭头函数也是匿名函数,区别...

网友评论

      本文标题:es6箭头函数和this

      本文链接:https://www.haomeiwen.com/subject/mkvgpftx.html