ES6----箭头函数

本是古典 何须时尚 2024-04-06 09:21 162阅读 0赞

目录

基本语法是:

基本用法:

注意:

普通函数和箭头函数区别?

1.this指向问题

2.普通函数 arguments保存实际参数

3.箭头函数 rest参数保存实际参数

4.表现形式不同


#

基本语法是:

  1. (参数) => {函数体}

基本用法:

  1. let sayName=()=>{
  2. console.log(this.name);
  3. }
  4. 等价于
  5. let sayname=function(){
  6. console.log(this.name);
  7. }

注意:

1 有且只有一个参数时,小括号可以省略 。 当箭头函数没有参数或者有多个参数,要用小括号括起来。

2 当箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块,当只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回。

3 当箭头函数要返回对象的时候,为了区分于代码块,要用 () 将对象包裹起来 。

  1. let person= (id,name) => ({id: id, name: name});
  2. person(6,"tom"); // {id: 6, name: "tom"}

4 箭头函数没有自己的this, 它的this是继承而来; 默认指向在定义它时所处的对象(宿主对象) 。

  1. let name='莉莉';
  2. let sayName=()=>{
  3. console.log(this.name); // undefiend {}
  4. // 箭头函数没有this
  5. // 内部this指向声明箭头函数时外部作用域中得this
  6. }
  7. let obj={
  8. // es6对象属性简写 当属性名和变量名一致 简写为属性名
  9. name
  10. // 箭头函数没有this 内部this指向声明箭头函数时外部作用域中this
  11. sayName:()=>{
  12. console.log(this.name,'111');
  13. }
  14. };
  15. obj.sayName();
  16. //undefined
  17. let name ='lili' //在当前作用域定义的name
  18. let name=()=>{
  19. console.log(this.name) //this指向当前模块 {} 当前模块并没有定义name
  20. }
  21. let obj={
  22. name,
  23. sayName(){
  24. return name
  25. }
  26. };
  27. obj.sayName()(); //执行箭头函数
  28. //undefined
  29. let name='明明'; //在当前作用域定义的name
  30. module.exports.name='莉莉'; //在当前模块定义的name
  31. let sayName=()=>{
  32. console.log(this.name);
  33. }
  34. let obj={
  35. name,
  36. sayName(){
  37. return sayName
  38. }
  39. }
  40. obj.sayName()();
  41. console.log(this===module.exports);
  42. //莉莉
  43. //true

es5函数内部属性有this和arguments,箭头函数内arguments不再保存实参,如果想接受实参,可以使用rest参数 返回一个保存实参的数组 拓展运算符

普通函数和箭头函数区别?

1.this指向问题

2.普通函数 arguments保存实际参数

3.箭头函数 rest参数保存实际参数

4.表现形式不同

发表评论

表情:
评论列表 (有 0 条评论,162人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Es6箭头函数

    `箭头函数`是Es6新增加的一个语法特性,在简化编码方面,有着巨大亮点。 下文就是我对于箭头`(=>)`函数的定义与实用说明。 用法一(无参数) 定义语法

    相关 ES6 箭头函数

    ES6 中添加了函数新的定义语法——`箭头函数`,当有大于一个形参的时候,必须使用`()`代表部分参数,函数体大于一行时,必须使用`{}`将函数体括起来,并使用 `return

    相关 Es6箭头函数

    let和const let 声明的变量只在 let 命令所在的代码块内有效。 const 声明一个只读的常量,一旦声明,常量的值就不能改变“(let)用来替代var声

    相关 es6箭头函数

    一。对箭头函数的理解 1. 在ES6中,"=>"是函数的表达式,并且箭头函数是匿名的。(这个箭头叫“lambda运算符”) 如: var lets = b => b\b

    相关 ES6箭头函数

    ES6箭头函数 一、什么是箭头函数 二、写法 三、箭头函数中this 一、什么是箭头函数 简化了匿名函数的写法, 二、写法 fu