当前位置: 首页 > 知识库问答 >
问题:

webpack - 不理解以前的打包编译为什么要这么设计?

鱼阳伯
2024-05-13

不理解以前的打包编译为什么要这么设计
这是一段webpack1打包后的代码:

var _index = __webpack_require__(3);// ...var render = (0, _index.compile)((0, _index4.getOuterHTML)(el));

我知道(a, b, c)这个语句会返回最后一个元素
但是我不明白为何要采用(0, _index.function)()的形式去调用引入的函数
而不是直接_index.function()
或许是有什么历史原因吗?

共有1个答案

岑俊明
2024-05-13

(0, _index.function)() 相当于:

const func = _index.functionfunc()

直接 _index.function() 调用时,function 中的 this_index。而通过 (0, _index.function)() 间接调用,相当于在全局作用域调用函数。在严格模式中,此时函数 functionthisundefined

const obj = {    a: 2,    func() {        console.log(this, this?.a)    }}obj.func(); // { a: 2 } 2(0, obj.func)() // undefined undefined
 类似资料:
  • 说明: 这实际上是一个诡计问题,因为这段代码不会编译!正如您在第1章中所记得的,浮点文字被假定为双倍,除非后缀有一个f,如2.1f。如果正确地将该值设置为2.1F,那么升级将与上一个示例类似,两个操作数都升级为double,结果将是一个double值。 但我不明白。如果浮动y=2.1;假设是双倍,则不需要将变量y提升到双倍。而我更困惑的是下一个问题,那就是:

  • 在方法或类范围内,下面的行编译(带有警告): 在类作用域中,变量获取其默认值,以下给出未定义引用错误: 这难道不是第一个应该以相同的未定义引用错误结束吗?或者第二行应该编译?或者我错过了什么?

  • 问题内容: 如果你给 它没有编译,但是带有花括号的相同代码是: 有什么解释? 问题答案: 基本上,变量声明只能在块中声明。 查看 Java语言规范中“语句”的语法 -它包括Block,但不包括LocalVariableDeclarationStatement- 后者是block语法的一部分。 这实际上是实用主义的问题:如果没有括号,则只能使用一个语句。如果没有后续语句,则声明变量是没有意义的,因为

  • 奇怪的是,标记为“OK”的行编译得很好,但标记为“Error”的行失败了。它们看起来基本上是一样的。

  • 我正在做我的节目。我正在使用Sublime文本和用于编译基本Windows CMD。我有一个文件夹,在这个文件夹中我有一个包,里面有每个文件(folde todolist)。在这个包中,我有一个类(Gui.java(packgae(folder)Gui\u pckg))。此类中的代码如下所示: 导入javax。摆动导入java。awt。; 公共类Gui{ } 而且它编译得很好。 但是,当我试图编译

  • 问题内容: 这段代码使我凝视了几分钟: 我以前从未见过,而且我也不知道Java有一个“ loop”关键字(NetBeans甚至没有像关键字一样给它上色),并且它在JDK 6中可以很好地编译。 有什么解释? 问题答案: 这不是一个。 用法: