首页 > 其他分享 >ES6 的 新特性 3 箭头函数

ES6 的 新特性 3 箭头函数

时间:2023-07-06 18:45:53浏览次数:38  
标签:ES6 const 函数 age alert 箭头 obj fn

箭头函数的作用:

1. 比function这种写法更加简洁;

2. 可以解决thsi指向的问题,因为它不会创建自己的this,而是继承上一级作用域的this。

使用场景:

1. 当函数内部不需要用到this的时候,都可以用箭头函数代替function;

2.需要this,但是需要的是上一级作用域的this。

箭头函数的几种写法:

1. 无参方法

    const fn = ()=>{alert(1)};
    fn();

2. 有参方法,有返回值

    const fn = (a,b)=>{return a+b};
    const r = fn(1,2);
    alert(r);

如果方法体只有一行代码,可以简化

    const fn = (a,b)=>a+b;
    const r = fn(1,2);
    alert(r);

如果参数只有一个,可以简化

    const fn = a=>a+1;
    const r = fn(1);
    alert(r);

 

需要注意的点

箭头函数被定义在对象中时,对象不产生作用域,箭头函数中的this指向对象的作用域中的this。

    var age = 100;

var obj = {
    age: 20,
    say: () => {
        alert(this.age)
    }
}

obj.say();

弹出的值是 100 。

如果用function,弹出的就是20,说明此时对象中的 this 指向的是 obj 自己的 作用域。

    var obj = {
        age: 20,
        say: function () {
            alert(this.age)
        }
    }

 如果在箭头函数中想调用对象的age,就不能用this,需要指定obj.age。

alert(obj.age)

 

标签:ES6,const,函数,age,alert,箭头,obj,fn
From: https://www.cnblogs.com/luyShare/p/17532863.html

相关文章

  • ES6 的 新特性 4 剩余参数,对象值省略
    剩余参数用于声明不确定参数数量的函数functionsum(first,...args){console.log(first);//10console.log(args);//[20,30]}sum(10,20,30)箭头函数也可以用constsum=(...args)=>{lettotal=0;args.forEach(item=>total+=i......
  • 时间处理函数
    /***个位数,加0前缀*@param{*}number*@returns*/importdayjsfrom'dayjs';exportnamespacetime{exportfunctionaddZeroPrefix(number){returnnumber<10?`0${number}`:number;}//functionaddZeroPrefix(n){......
  • 这样看C函数才对
    什么是函数?从定义来看,函数就是一段可以重复使用的代码块,比如下面这样voidhanshu(){inta=0;intb=3;}这时候就应该有人要跳出来了,这是什么**!确实,作为一个强烈反对屎山代码存在的编程者来说,一个好的函数应该是一个有着合理命名,并且功能紧凑的功能块,而不仅只是......
  • Mish激活函数
    前言人们对激活函数都在不断探究,而现在广泛应用的激活函数通常是relu,tanh这两种但是relu在负值的时候直接截断梯度下降的不够平滑因而有团队提出一种新的激活函数来进行优化Mish激活函数Mish激活函数的表达式为 Mish=x*tanh(ln(1+e^x))使用matplotlib画图可得从......
  • 1.ES6
    1.let①let不存在预解析。--即使用前一定要定义。②let声明的变量不允许在相同作用域内重复声明③ES6引入块级作用域。--即let在块内部中定义,只能在块内部使用 2.const①const不存在预解析。--即使用前一定要定义。②const不能重复声明。且声明后必须赋值。③如果声明......
  • ES6 的 新特性 1 let,const
    Let,Const,Var可以放一起说这三个都是JS中用来声明变量的关键字。主要的区别是1.作用域Var声明的变量的作用域是当前的执行上下文,也就是说,如果在函数外部声明,则是全局变量,如果是函数内部声明,则是整个函数块的变量。Let声明的变量的作用域则是当前的代码块,也就是说可以像var一......
  • js的中的函数(二)
    构造函数JavaScript中,一个函数除了作为普通意义的函数外,还可以被用来定义为构造函数。什么是构造函数?就是可以用来生成一个对象的函数。例如:functionStudent(name,age,city,address){//this指向构造函数生成的对象this.name=name;this.age=ag......
  • C++内存模型&空指针、野指针、函数指针和回调函数
    C++内存模型&空指针、野指针、函数指针和回调函数C++内存模型栈与堆的区别:1.管理方式不同栈是系统自动管理的,在超出作用域后,将自动被释放堆是手动释放,若程序中不释放,程序结束后将由操作系统回收2.空间大小不同堆的大小受限于物理内存范围栈小的可怜,一般为8M(可通过更改......
  • Go 语言函数
    函数定义与调用packagemainimport"fmt"funcmain(){/*定义局部变量*/varaint=100varbint=200varretint/*调用函数并返回最大值*/ret=max(a,b)fmt.Printf("最大值是:%d\n",ret)}/*函数返回两个数的最大值*/fun......
  • 结构体,指针函数和数组初始化
    struct_m_malloc_dev{void(*init)(uint8_t);//初始化函数uint8_t(*perused)(uint8_t);//内存使用率uint8_t*membase[SRAMBANK];//内存池管理srambank个区域的内存uint16_t*memmap[SRAMBANK];//内存管理状态表uint8_tmemrdy[SRAMBANK];//内存管理......