美文网首页JS相关让前端飞Web前端之路
es6箭头函数中的this的区别

es6箭头函数中的this的区别

作者: WMLJS | 来源:发表于2017-08-03 10:54 被阅读95次

箭头函数函数看上去只是es6对匿名函数的简写,其实箭头函数和匿名函数有明显区别

  • 普通方式定义的函数可参考我之前整理的文章 关于js中this
  • 箭头函数中的this是词法作用域,即this和调用时的上下文无关
  • 箭头函数根本就没有绑定自己的 this,在箭头函数中调用 this 时,仅仅是简单的沿着作用域链向上寻找,找到最近的一个 this 拿来使用罢了(外层调用者);
  • 因为箭头函数没有绑定this,所有call,apply的第一个参数(this的绑定)无效
    来看看区别
//箭头语法
var obj = {
    name: 'ab',
    getName: function () {
        var fn = () => this.name; // this指向obj对象
        return fn();
    }
};
obj.getName();

//普通的方式
var obj = {
name: 'ab',
getName: function () {
    var fn = function() {return this.name} // this指向winodw对象
    return fn();
}
};
obj.getName();

相关文章

  • 箭头函数与普通函数的区别

    箭头函数与普通函数的区别,实质是我们是否理解了箭头函数,在我刚开始接触ES6时,印象中的箭头函数与普通函数的区别就...

  • 2019-01-11

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

  • JavaScript箭头函数

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

  • 基础面试3

    1.怎么理解es6箭头函数中的this,它和一般函数的this指向有什么区别呢?在箭头函数中没有自己的this,它...

  • 箭头函数(常用)

    ES6 允许使用箭头(=>)定义函数 箭头函数对于使用function关键字创建的函数有以下区别1.箭头函数没有a...

  • ES6箭头函数

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

  • 箭头函数的返回值

    ES6中的箭头函数和平时使用的函数的区别 this大部分人都知道是this不在动态绑定了,而是在写箭头函数的时候就...

  • ES6-箭头函数

    箭头函数中的this ES6函数参数默认值 箭头函数不适用的场景

  • 箭头函数

    1,箭头函数定义 2,Es6 中箭头函数参数与返回值简写 补充 3,箭头函数中 this 指向 注:箭头函数中的t...

  • ES6箭头函数简介

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

网友评论

    本文标题:es6箭头函数中的this的区别

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