美文网首页
箭头函数中的this

箭头函数中的this

作者: sc8816 | 来源:发表于2020-04-01 16:03 被阅读0次

箭头函数是ES6的新特性,作为解决传统函数this指向难以追溯的方案(或者说不想写function关键字),按照部分技术文章的说法箭头函数中this的指向是固定的,但这样说容易让人认为箭头函数中的this永远指向同一个对象,所以到底是不是如此呢?

MDN上对箭头函数的描述

箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this、arguments。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this。

window.word = 'window'
const obj = {
    fn: function() {
        setTimeout(() => {
            console.log(this.word)
        })
    },
    word: 'obj'
}

obj.fn()   //obj 
const globalFn = obj.fn;
globalFn();   // window

const obj2 = {
    word: 'obj2',
    fn: obj.fn
}
obj2.fn();   //obj2

对于globalFn来说,此时调用方为window,globalFn的this指向window,而内部箭头函数继承了globalFn的this,所以也指向了window。

而obj2中,调用时fn的this指向obj2,内部箭头函数继承了fn的this对象,所以也指向了obj2,此时输出obj2。

相关文章

  • 九、箭头函数 ------ 2020-04-06

    1、箭头函数的创建: 2、箭头函数中没有arguments 3、箭头函数中没有自己的this

  • 箭头函数

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

  • 一句话明白箭头函数中的this

    关于箭头函数中this值的问题,网上查查,会告诉你 “箭头函数的this固定化,箭头函数中的this绑定定义时所在...

  • ES学习笔记

    [摘抄自网络] 箭头函数 箭头函数中的this箭头函数看上去是匿名函数的一种简写,但实际上,箭头函数和匿名函数有个...

  • 箭头函数没有绑定this

    ==箭头函数没有绑定this== 不要把【箭头函数】和【箭头函数的定义函数】弄混淆 ecma262规范中明确规定,...

  • 函数的this是什么时候绑定的

    箭头函数是没有this的,箭头函数中的this只取决于包裹箭头函数的第一个普通函数的this。

  • 【Dart】函数

    声明函数 直接声明Dart中声明函数不需要function关键字 箭头函数+Dart中 的箭头函数中,函数体只能写...

  • 常见前端面试题

    箭头函数与普通函数的区别 箭头函数语法比普通函数更加简洁,但箭头函数中没有arguments,所以形参可以使用展开...

  • ES6-箭头函数

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

  • 箭头函数中的this

    箭头函数中的this箭头函数中的this绑定的是上下文的this对象,如下:var calculate = { ...

网友评论

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

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