广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >JavaScript箭头函数的this怎么使用
  • 923
分享到

JavaScript箭头函数的this怎么使用

2024-04-02 19:04:59 923人浏览 安东尼
摘要

这篇文章主要介绍“javascript箭头函数的this怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript箭头函数的this怎么使用”文章能

这篇文章主要介绍“javascript箭头函数的this怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript箭头函数的this怎么使用”文章能帮助大家解决问题。

    //构造函数内部使用箭头函数

function Person(a) {

      this.a = a

      this.b = () => {

        console.log(this.a)

      }

    }

    new Person(10).b()//输出10

//箭头函数的this从外层继承而来。本例箭头函数中this等于箭头函数外的this,正确。

//自定义类时使用箭头函数

var a="1"

    class A {

      constructor(a) {

        this.a = a

      }

      getName = () => {

        console.log(this)

      }

    }

    new A("2").getName()//输出2

//箭头函数的this从外层继承而来。我的理解是箭头函数中this继承了类中的this,正确

//对象中使用构造函数

  var a = 1;

    var obj = {

      a: 2,

      say1: () => {

        console.log(this.a);

      },

      say2: function () {

        console.log(this.a);

      },

      b: {

       a: 3,

       say5: ()=> {

          console.log(this.a)

        }

      }

    };

    obj.say1();  //1

    obj.say2();  //2

obj.b.say5() //1

    let say3 = obj.say1;

    let say4 = obj.say2;

    say3();     //1

    say4();     //1

//如果说箭头函数的this从外层继承而来的话,那么这里say1中的this应该是指向obj,但是结果是指向window,而且不管嵌套多少层对象,箭头函数的this始终指向window(从say5输出1可以看出),say3之所以输出1是因为let say3=obj.say1只是将函数赋值给say3,say3的拥有者是window,故this指向window。

总结:我觉得”箭头函数的this从外层继承而来“这句话不能将this的指向一言概之,还是要分情况讨论,当然,也有可能是我对这句话理解的还不够透彻。

最后还有一个知识点:箭头函数中的this指向的是定义时的this,而不是执行时的this。

先来看普通函数,普通函数的this值会因调用该函数的对象发生改变而改变

 var a=1

   var obj = {

        a:2,

        say(){

            setTimeout(

               function(){console.log(this.a);},

               1000

           );

        }

    };

    obj.say();//输出1

//因为setTimeout是window对象的方法,当延迟1s后执行console.log(this.a)时,这时的this已经由指向obj变成指向window,所以输出1

//同样的,apply,call,bind也能改变普通函数中this指向    

var obj = {

      a: 2,

      say: function () {

        console.log(this.a)

      }

    };

    var obj2 = {

      a: 3

    }

    obj.say()//输出2

    obj.say.call(obj2)//输出3

    obj.say.apply(obj2)//输出3

    var say2=obj.say.bind(obj2)

    say2()//输出3

对比之下,箭头函数的this在函数定义时就已经确定,不会改变(看下面例子)

    var a = 1

    var obj = {

      a: 2,

      say() {

        setTimeout(

          () => { console.log(this.a); },

          1000

        );

      }

    };

    obj.say();//输出2

    var a = 1

    var obj = {

      a: 2,

      say: ()=> {

        console.log(this.a)//这里前面已经讲过了,this指向的是window

      }

    };

    var obj2 = {

      a: 3

    }

    obj.say()//输出1

    obj.say.call(obj2)//输出1

    obj.say.apply(obj2)//输出1

    var say2=obj.say.bind(obj2)

    say2()//输出1

关于“JavaScript箭头函数的this怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网node.js频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: JavaScript箭头函数的this怎么使用

本文链接: https://www.lsjlt.com/news/94562.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript箭头函数的this怎么使用
    这篇文章主要介绍“JavaScript箭头函数的this怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript箭头函数的this怎么使用”文章能...
    99+
    2022-10-19
  • ES6箭头函数及this指向怎么使用
    这篇文章主要介绍“ES6箭头函数及this指向怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ES6箭头函数及this指向怎么使用”文章能帮助大家解决问题。1...
    99+
    2022-10-19
  • Javascript箭头函数中this的示例分析
    小编给大家分享一下Javascript箭头函数中this的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先我们先看一段...
    99+
    2022-10-19
  • JavaScript如何使用箭头函数
    这篇文章主要讲解了“JavaScript如何使用箭头函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript如何使用箭头函数”吧!箭头函数在E...
    99+
    2022-10-19
  • JS 箭头函数的this指向详解
    箭头函数是ES6中的新增特性,他没有自己的this,其this指向从外层代码库继承。 使用箭头函数时要注意一下几点: 箭头函数不能用作构造函数,用的话会抛出一个错误 ...
    99+
    2022-11-12
  • JS箭头函数的this指向分析
    本篇内容介绍了“JS箭头函数的this指向分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!箭头函数是ES6中的新增特性,他没有自己的thi...
    99+
    2023-06-25
  • 怎么使用ES6箭头函数
    这篇文章主要介绍“怎么使用ES6箭头函数”,在日常操作中,相信很多人在怎么使用ES6箭头函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用ES6箭头函数”的疑惑有所帮...
    99+
    2022-10-19
  • 怎么使用VSCode箭头函数
    本篇内容主要讲解“怎么使用VSCode箭头函数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用VSCode箭头函数”吧!箭头函数是必须要掌握的,今天我们一...
    99+
    2022-10-19
  • es6箭头函数怎么使用
    本篇内容介绍了“es6箭头函数怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • JavaScript箭头函数与剩余参数怎么使用
    本篇内容主要讲解“JavaScript箭头函数与剩余参数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript...
    99+
    2022-10-19
  • php里箭头函数怎么使用
    这篇“php里箭头函数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php里箭头函数怎么使用”文章吧。php里箭头是...
    99+
    2023-07-04
  • 详解JavaScript中的箭头函数的使用
    目录前言箭头函数语法无圆括号语法隐式返回注意隐式返回错误无法命名箭头函数如何处理this关键字匿名箭头函数不正常工作的情况箭头函数作为对象方法箭头函数与第三方库箭头函数没有argum...
    99+
    2022-11-13
    JavaScript箭头函数使用 JavaScript 箭头函数 JS 箭头函数
  • JavaScript中的箭头函数是什么
    这篇文章主要讲解了“JavaScript中的箭头函数是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript中的箭头函数是什么”吧!一、箭头...
    99+
    2022-10-19
  • ES6箭头函数中this问题的示例分析
    小编给大家分享一下ES6箭头函数中this问题的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简要介绍:箭头函数中的th...
    99+
    2022-10-19
  • 最新版JavaScript中的箭头函数
    目录前言箭头函数语法无圆括号语法隐式返回注意隐式返回错误无法命名箭头函数如何处理this关键字匿名箭头函数不正常工作的情况箭头函数作为对象方法箭头函数与第三方库箭头函数没有argum...
    99+
    2022-11-13
    js箭头函数 JavaScript中的箭头函数
  • ES6新增的箭头函数怎么用
    今天小编给大家分享一下ES6新增的箭头函数怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2022-10-19
  • JS函数(普通函数,箭头函数)中this的指向问题详解
    目录普通函数箭头函数普通函数 具名普通函数、匿名普通函数,在不作为对象的属性值的情况下,其内部的 this 总是指向代码运行环境下的全局对象 ( 例如,浏览器中的 window )。...
    99+
    2022-11-13
  • JavaScript哪些场景不能使用箭头函数
    目录1. 定义对象方法 2.定义原型方法 3. 定义事件回调函数 4. 定义构造函数 1. 定义对象方法    JS 中对象方法的定义方式是在对象上定义一个指向函数的属性...
    99+
    2022-11-12
  • JavaScript中箭头函数的简写方法
    这篇文章将为大家详细讲解有关JavaScript中箭头函数的简写方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。箭头函数简写传统函数编写方法很容易让人理解和编写,但是当嵌套在另一个函数中,则这些优势就荡...
    99+
    2023-06-27
  • ES6箭头函数如何使用
    本篇内容介绍了“ES6箭头函数如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介箭头函数表达式的语...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作