es6 中的箭头函数和普通函数有什么区别?

1、普通函数中的 this 总是指向调用它的那个对象,

箭头函数没有自己的 this,他的 this 永远指向其定义环境,任何方法都改变不了其指向,如 call()、bind()、apply()。(正是因为它没有 this,所以也就不能用作构造函数,也没有原型对象)

箭头函数不能当作构造函数,也就是说,不能使用 new 命令,否则会报错。

箭头函数没有原型属性。

箭头函数不可以使用 yield 命令,因此箭头函数不能用作 Generator 函数。

箭头函数不能使用 arguments 对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。

变量提升:由于 js 的内存机制,function 的级别最高,而用箭头函数定义函数的时候,需要 var(let、const)关键字,而 var 所定义的变量不能得到变量提升。故箭头函数一定要定义于调用之前。

拓展:this 的指向问题?

1、普通函数中,this 指向其函数的直接调用者;

2、箭头函数中,this 指向其定义环境,任何方法都改变不了其指向,如 call( )、bind()等;

3、构造函数中,如果不使用 new,则 this 指向 window,

 如果使用 new 创建了一个实例,则 this 指向该实例。

4、window 内置函数中,如 setInterval,setTimeout 等,其内部的 this 指向 Window。

5、匿名函数的 this 指向 Window。

6、apply()、call()、bind()可以改变 this 的指向

相关推荐

  1. es6 箭头函数普通函数什么区别

    2023-12-17 07:40:02       51 阅读
  2. 箭头函数普通函数区别

    2023-12-17 07:40:02       38 阅读
  3. ES6 箭头函数

    2023-12-17 07:40:02       58 阅读
  4. ES6 => 箭头函数

    2023-12-17 07:40:02       29 阅读
  5. es6箭头函数 原型

    2023-12-17 07:40:02       56 阅读
  6. 箭头函数普通函数差异

    2023-12-17 07:40:02       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-17 07:40:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-17 07:40:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-17 07:40:02       82 阅读
  4. Python语言-面向对象

    2023-12-17 07:40:02       91 阅读

热门阅读

  1. Python 迭代器详解:遍历数据的高效利器

    2023-12-17 07:40:02       57 阅读
  2. 基于JNI 实现 嵌套 List 类型参数解析

    2023-12-17 07:40:02       58 阅读
  3. SOEM主站开发篇(5):CMakeLists.txt文件解析

    2023-12-17 07:40:02       53 阅读
  4. Julia调用Matlab, Python以及R的微分方程求解器

    2023-12-17 07:40:02       63 阅读
  5. 【人生感悟】涅槃重生

    2023-12-17 07:40:02       67 阅读
  6. 实现两张图片的接缝线拼接

    2023-12-17 07:40:02       66 阅读
  7. Webpack5

    2023-12-17 07:40:02       63 阅读
  8. 打包速度优化

    2023-12-17 07:40:02       56 阅读
  9. Python学习之复习MySQL-Day4(DCL)

    2023-12-17 07:40:02       63 阅读