为什么 babel 将导入的函数调用重写为 (0, fn)(...) ?

2023-11-24

给定一个输入文件,例如

import { a } from 'b';

function x () {
  a()
}

babel 会将其编译为

'use strict';

var _b = require('b');

function x() {
  (0, _b.a)();
}

但是当以松散模式编译时,函数调用输出为_b.a();

我对逗号运算符的添加位置进行了一些研究,希望有评论对其进行解释。 负责添加它的代码是here.


(0, _b.a)()确保功能_b.a被称为this设置为全局对象(或者如果启用了严格模式,则undefined)。如果你打电话_b.a()直接,然后_b.a被称为this set to _b.

(0, _b.a)();相当于

0; // Ignore result
var tmp = _b.a;
tmp();

(the ,是逗号运算符,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_Operator).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 babel 将导入的函数调用重写为 (0, fn)(...) ? 的相关文章

  • 如何使用 JavaScript 创建链接?

    我有一个标题字符串和一个链接字符串 我不知道如何将两者放在一起以使用 JavaScript 在页面上创建链接 任何帮助表示赞赏 我试图解决这个问题的原因是因为我有一个 RSS 源并且有一个标题和 URL 列表 我想将标题链接到 URL 以使
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • IE从哪个版本开始支持Object.create(null)?

    您可以通过多种方式在 JavaScript 中创建对象 creates an object which makes the Object prototype of data var data1 new Object Object liter
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 可以在初始 DOM 解析期间/之前修改 DOM 吗?

    是否可以在初始 DOM 解析期间或之前修改 DOM 或者我是否必须等到 DOM 被解析和构建之后才能与其交互 更具体地说 是否有可能阻止 DOM 中的脚本元素使用用户脚本 内容脚本或 Chrome 或 Firefox 中的类似脚本运行 在解
  • 使用 dc.js 按条形值对条形图中的条形进行排序(排序)

    如何通过维度的计算值而不是维度本身的名称对 dc js 示例中的 x 轴 维度 进行排序 例如 请考虑序数条形图的 dc js 示例 https github com dc js dc js blob master web examples
  • 隐藏 Div 的父级

    我只是想隐藏父divcomments section div class content content green div div div 我试过这个 document getElementById comments section pa
  • 将 GMT 时间转换为当地时间

    我以这种格式从我的服务器获取 GMT 时间 Fri 18 Oct 2013 11 38 23 GMT 我的要求是使用Javascript将此时间转换为本地时间 例如 如果用户来自印度 首先我需要采用时区 5 30并将其添加到我的服务器时间并
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • Chrome 扩展程序在代码中使用 client_secret

    我正在开发具有自己的 oAuth 授权的 Google Chrome 扩展 当然 我必须使用 client id 和 client secret 作为请求令牌 有什么办法可以向用户隐藏这些数据吗 由于此请求只是 javascript 源代码
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • Javascript 假值(null、未定义、false、空字符串:“”或 '' 和 0)和比较(==)运算符 [重复]

    这个问题在这里已经有答案了 当我使用任何一个值时 null undefined false 0 in a if陈述 它总是被评估为谬误 false 另外 这些值的否定 null undefined false 0 in a if语句总是被评
  • Three.js 各种大小的粒子

    我是 Three js 的新手 正在尝试找出添加 1000 个粒子的最佳方法 每个粒子都有不同的大小和颜色 每个粒子的纹理是通过绘制画布创建的 通过使用粒子系统 所有粒子都具有相同的颜色和大小 为每个粒子创建一个粒子系统是非常低效的 有没有
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev

随机推荐

  • 尽管已设置操作,但单击分段时仍显示 NSSegmentedControl 菜单

    我的 UI 上有一个带有 4 个按钮的 NSSegmentedControl 该控件连接到一个方法 该方法将根据单击的段调用不同的方法 IBAction performActionFromClick id sender NSInteger
  • 使用 AsyncTask 下载文件

    我正在尝试使用 asyncTask 下载文件 但无法正常工作 没有错误消息或什么也没有 只是不要下载文件 我尝试了所有方法 但似乎暂时没有输入 任何人都知道可以做什么是问题所在吗 我在手机上测试过 网址也可以 class DownloadF
  • 在 Matlab 中禁用绘图

    我有一些用 Matlab 编写的程序 由于某些原因我需要运行几次 调试 使用不同的输入进行测试等 但是 程序及其各种功能绘制了很多图表 因此每次运行程序时 我都必须等待所有图表显示出来 这是非常烦人且耗时的 尤其是当您使用小型笔记本电脑 程
  • ag-grid 在单元格渲染器之上渲染

    我已经尝试了我所知道的一切 让我的自定义下拉单元格渲染器显示为 agGrid 示例中最上面的 div 我玩过 z index 定位等 但没有运气 唯一做的事情就是转到其中一个有问题的行并取消选择该行的转换 但随后该行就消失了 欢迎任何想法
  • SVG 九切片缩放

    怎样才能获得九片缩放在 SVG 中 具体来说 我正在寻找一种方法来定义 SVG 对象 使其在调整大小时表现得像九切片对象 某些元素保持其尺寸 而其他元素随容器缩放 如果您打算将其应用于 svg 那么CSS3 边框和背景如果您引用 svg s
  • C# - 将文本文件加载为类

    有没有办法将 txt 文件作为类加载 然后我的主程序可以从中调用函数 我基本上试图向我的简单应用程序添加 mod 支持 用户可以从每个文件中选择选项 该文件遵循类似 但不相同 的格式 带有一堆在主程序中调用的空位 函数 我怎样才能做到这一点
  • Keras 用于多任务学习神经网络的顺序 API 与函数式 API

    我想为多任务深度学习任务设计一个神经网络 在 Keras API 中 我们可以使用 顺序 或 函数 方法来构建这样的神经网络 下面我提供了用于构建网络的代码 使用两种方法构建具有两个输出的网络 顺序 seq model Sequential
  • Android任务和进程、SingleTask和SingleInstance

    我已经阅读了 Google Android 开发者页面 但是任务的概念 http developer android com guide components tasks and back stack html 真让我困惑 当我读到 Sin
  • 如何使用 javascript 在 html 中截取屏幕截图?

    我是 html 和 javascript 的新手 我正在尝试截取我的 html 页面的屏幕截图并将其另存为jpg or png file Here is my html image 我想通过拖放来截取右侧的屏幕截图 灰色 divs按图像右上
  • CoreData:错误:(14) 数据库 I/O 错误

    在 XCode 中编译并运行项目时使用Core Data我收到一个以前从未见过的错误 2013 09 12 16 59 10 156 myapp 57811 70b CoreData error 14 I O error for datab
  • 使用反应式扩展进行数据库轮询

    我必须及时查询数据库以了解遗留系统的状态 我想过将查询包装在Observable 但我不知道正确的方法 基本上 每 5 秒就会出现相同的查询 但我担心我将不得不面对这些问题 如果查询执行需要 10 秒怎么办 我不想 如果前一个查询仍在处理中
  • 与 javascript 或 jquery 中的 .some() 方法等效吗?

    正在寻找 与 javascript 中的某些方法等效 和 如果在数组中则仅返回一个值 但只看到了确定变量类型的方式的答案 或者有太多不必要的答案 我绕过 html 中的所有输入 我想要这样的东西 goodsFilter find input
  • 使用 Javascript 读出 KML 文件

    我有一个包含城市区的 KML 文件 想用 Javascript 读出它 以便在地图上显示这些叠加层 多边形 Google Maps API v 3 此外 我想从 KML 文件中保存 GeoPoints 和对象中的区域名称 但我不知道该怎么做
  • MVC Html.ActionLink 从 URL 中删除空查询字符串参数

    我正在使用Html ActionLink string linkText string actionName object routeValues 重载以将一些参数发送到操作方法 有时我需要传递一个空参数值 例如 item1 item2 v
  • 如何从reactjs组件访问“key”属性

    我怎样才能访问key组件的属性 我以为它会在 this props 中 但事实并非如此 e g
  • 如何使用 ConstraintLayout 设置 DimensionRatio 的 maxHeight?

    我正在尝试显示以父级为中心的图像 尺寸比为 1220 1000 最大高度为 300dp 即使在大屏幕下也能保持图像较小
  • 在 C# 中哪里可以找到机器 epsilon?

    机器 epsilon 被规范地定义为与 1 相加得到的结果与 1 不同的最小数字 有一个Double Epsilon但这个名字很容易让人误解 它是最小的 非规范化的 Double值可表示 因此对于任何类型的数字编程都是无用的 我想得到tru
  • 从图像中查找车辆的速度

    我正在做一个项目 从图像中查找车辆的速度 我们正在车内拍摄这些图像 我们将标记第一张图像中的一些对象作为参考 利用下一张图像中同一物体的属性 我们必须计算移动车辆的速度 有人能帮我一下吗 我正在使用 python opencv 我已经成功
  • 将 XSLT 2.0 与 PHP 结合使用的最佳方法是什么?

    这是我在网站上的第二个问题 像往常一样 我花了几个小时阅读了很多相关问题 最相关的两个是 XPath 2 0 和 或 XSLT 2 0 是否会在 PHP 中实现 其中解释了使用 PHP Java Bridge 和 Saxon 的解决方案 A
  • 为什么 babel 将导入的函数调用重写为 (0, fn)(...) ?

    给定一个输入文件 例如 import a from b function x a babel 会将其编译为 use strict var b require b function x 0 b a 但是当以松散模式编译时 函数调用输出为 b