当前位置: 首页 > 面试题库 >

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

於宏大
2023-03-14
问题内容

给定一个输入文件,例如

import { a } from 'b';

function x () {
  a()
}

巴别塔将其编译为

'use strict';

var _b = require('b');

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

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


问题答案:

(0, _b.a)()确保在将函数设置为全局对象的_b.a情况下调用该函数this(如果启用了严格模式,则为to
undefined)。如果你打电话_b.a()直接,然后_b.a调用与this设置_b

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

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


 类似资料:
  • 问题内容: 原始问题: 当我的JavaScript调用的功能在页面下方而不是在调用页面的下方定义时,JSHint会抱怨。但是,我的页面是用于游戏的,在下载全部内容之前,不会调用任何函数。那么为什么订单功能出现在我的代码中很重要? 我在里面吟。看来我需要花另一天的时间才能重新排序六千行代码。使用javascript的学习曲线一点也不陡峭,但是非常糟糕。 问题答案: tl; dr 如果在加载完成之前不

  • 根据我的理解,当创建了临时对象时,将调用move构造函数。这里,函数返回一个临时对象,但我的程序没有打印来自移动构造函数的消息:

  • 上述代码是我在进行 ramda 函数库的 pipe 实现过程中的代码。 我无法通过测试用例 performs left-to-right function composition 和 can be applied to one argument 我发现是因为我是实现的代码 f的长度都是0, 所以我想问什么原因造成的这个问题,如何解决? ramda - test -pipe

  • 我使用从iPython笔记本下载CSV时建议的代码动态构建javascript代码,并在从jupyter笔记本调用时使用python中的javascript()将其传递给浏览器。代码工作得很好。如果我在python函数中嵌入相同的代码,并从同一个jupyter笔记本调用python函数,那么python中的调用Javascript()将不再有效。如何使可重用功能正常工作? 我正在Windows 1

  • 有这样一个应用程序结构,其中是根目录,“app”和“package1”是两个并行包: *注意:最后一个位于根目录“myapp”中 如何解决ImporDerror:尝试在没有已知父包的情况下进行相对导入 我想应用“解决方案1”,但不明白我应该把main.py放在哪里,它的内部代码是什么,或者相反,它可能是像这样的空文件

  • 场景: 这段代码不起作用,而且我找不到一种方法来调用一个像继承的那样的特性函数。我尝试调用、、、以及以下命令: 什么都不起作用。 是否有方法使其工作,或者我必须完全重写比这复杂得多的trait函数:)