为什么ES6 IIFE和ES5 IIFE的执行上下文不同?

扎克·史密斯

标题约总结了问题-这是代码示例:

!function() {
    console.log(this); // global object
}();

(function() {
    console.log(this); // global object
})();

() => {
    console.log(this); // {}
}();

var x = (function() {
    console.log(this); // global object
})();

箭头功能在幕后发生了什么?据我所知,如果我想要在ES5中使用该作用域,则必须将执行绑定到一个空对象,如下所示:

!function() {
    console.log(this); // global object
}.bind({})();
Cstuncsik

与ES5或ES6无关,箭头函数始终获取封闭函数的上下文。不使用函数调用'use strict';总是将全局对象作为上下文获取(例如,浏览器中的窗口),使用该上下文时undefined,默认情况下为上下文

这是一篇很好的文章,解释了该主题:

https://rainsoft.io/gentle-explanation-of-this-in-javascript/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么ES6 IIFE和ES5 IIFE的执行上下文不同?

来自分类Dev

为什么Chrome无法(或CAN)在ES6的Arrow功能中找到上下文

来自分类Dev

为什么ES6类语法控制台的日志与ES5类语法不同?

来自分类Dev

scala的执行上下文和播放的执行上下文之间有什么区别

来自分类Dev

es6类中的reactjs'this'上下文

来自分类Dev

Es6提取/承诺上下文

来自分类Dev

在ES6类中处理上下文

来自分类Dev

ES6 Promise - 为什么从 catch() 抛出和从 then() 抛出的行为不同?

来自分类Dev

ES6类文字中的IIFE

来自分类Dev

包裹在IIFE中的javascript库如何可用?执行上下文不被处理吗?

来自分类Dev

包裹在IIFE中的javascript库如何可用?执行上下文不被处理吗?

来自分类Dev

ES6循环和forEach中的上下文和变量范围

来自分类Dev

带有事件处理程序和上下文/范围问题的 Es6 类

来自分类Dev

ES6不允许使用变量名称-为什么名称“ let”和“ const”表现不同?

来自分类Dev

ES6箭头功能:为什么在构造函数和对象文字中使用“ this”时指向不同?

来自分类Dev

与 ES5 相比,React 的 ES6 语法有何不同?

来自分类Dev

通过导入ES6模块来加载和使用旧版JS模块(例如IIFE)

来自分类Dev

为什么Angular构建会创建带有'es5'和'es2015'但没有'es6'(或根本没有后缀)的文件?

来自分类Dev

执行上下文和词法环境之间有什么区别和关系?

来自分类Dev

调用requestAnimationFrame时,画布无法找到上下文-ES6

来自分类Dev

ES6中的super.method上下文处理

来自分类Dev

ES6 - 如何获取特定上下文的数组项(函数)

来自分类Dev

ES5与ES6的承诺

来自分类Dev

将IIFE格式的功能导出到ES6模块

来自分类Dev

Web组件-什么是执行上下文?

来自分类Dev

程序的执行上下文是什么?

来自分类Dev

执行上下文和((此对象))

来自分类Dev

执行上下文和return语句

来自分类Dev

为什么 ES6 生成器函数在 Angular 6 和 chrome 开发者工具上给我不同的结果

Related 相关文章

  1. 1

    为什么ES6 IIFE和ES5 IIFE的执行上下文不同?

  2. 2

    为什么Chrome无法(或CAN)在ES6的Arrow功能中找到上下文

  3. 3

    为什么ES6类语法控制台的日志与ES5类语法不同?

  4. 4

    scala的执行上下文和播放的执行上下文之间有什么区别

  5. 5

    es6类中的reactjs'this'上下文

  6. 6

    Es6提取/承诺上下文

  7. 7

    在ES6类中处理上下文

  8. 8

    ES6 Promise - 为什么从 catch() 抛出和从 then() 抛出的行为不同?

  9. 9

    ES6类文字中的IIFE

  10. 10

    包裹在IIFE中的javascript库如何可用?执行上下文不被处理吗?

  11. 11

    包裹在IIFE中的javascript库如何可用?执行上下文不被处理吗?

  12. 12

    ES6循环和forEach中的上下文和变量范围

  13. 13

    带有事件处理程序和上下文/范围问题的 Es6 类

  14. 14

    ES6不允许使用变量名称-为什么名称“ let”和“ const”表现不同?

  15. 15

    ES6箭头功能:为什么在构造函数和对象文字中使用“ this”时指向不同?

  16. 16

    与 ES5 相比,React 的 ES6 语法有何不同?

  17. 17

    通过导入ES6模块来加载和使用旧版JS模块(例如IIFE)

  18. 18

    为什么Angular构建会创建带有'es5'和'es2015'但没有'es6'(或根本没有后缀)的文件?

  19. 19

    执行上下文和词法环境之间有什么区别和关系?

  20. 20

    调用requestAnimationFrame时,画布无法找到上下文-ES6

  21. 21

    ES6中的super.method上下文处理

  22. 22

    ES6 - 如何获取特定上下文的数组项(函数)

  23. 23

    ES5与ES6的承诺

  24. 24

    将IIFE格式的功能导出到ES6模块

  25. 25

    Web组件-什么是执行上下文?

  26. 26

    程序的执行上下文是什么?

  27. 27

    执行上下文和((此对象))

  28. 28

    执行上下文和return语句

  29. 29

    为什么 ES6 生成器函数在 Angular 6 和 chrome 开发者工具上给我不同的结果

热门标签

归档