gpt4 book ai didi

javascript - Laravel MIX,如何在多个文件中使用单个函数

转载 作者:行者123 更新时间:2023-11-30 14:18:19 25 4
gpt4 key购买 nike

我有三个文件:

  • 我的函数.js
  • scripts_1.js
  • scripts_2.js

我的函数.js

function myFunction() {
console.log('my function');
}

如何在我的文件 scripts_1.jsscripts_2.js 中使用这个函数?我在 users.js 中将这两个用作:

require('scripts_1');
require('scripts_2');

admins.js 中我只使用了一个:

require('scripts_2');

稍后在我的 webpack.mix.js 中,我将 usersadmin 文件编译为两个单独的缩小 js 文件。

如果我只是在我的 scripts_1scripts_2 文件中使用 require('my_function') 这不起作用(可能是 myFunction() 不在同一范围内)。

但是,如果我将我的函数附加到 window 变量,那么我就可以完成这项工作,这样 my_function 现在看起来像这样:

window.myFunction = function() { ... }

此时我什至不必在任何 scripts_1scripts_2 文件中要求它(但我在我的 users.jsadmin.js 文件),但这感觉有点不对。

长话短说;

我想知道如何使用 Laravel MIX 定义可以在多个其他 js 文件中重用的辅助 js 函数。

最佳答案

您要导出 myFunction 吗?

在节点中,你可以做

module.exports = {
myFunction: function () {
console.log('my function');
}
}

有了 webpack 和 friend ,你可以简单地

export function myFunction() {
console.log('my function');
}

然后就可以导入并使用函数了

const someName = require('my_function.js')

someName.myFunction()

导出您告诉模块(在这种情况下为文件)具有该功能的功能。当您导入模块时,您将能够使用该功能,它是某种类型的公共(public)/私有(private)行为,导出的函数/对象,...对其他模块是公共(public)的,非导出的函数/对象/...是私有(private)的。

要使用导出函数,首先您需要在每个要使用它的文件中导入模块 (require('themodule'))。相反,使用 window,您在全局对象 window 中附加了一个新属性,因此一旦您在某个文件中导入了模块,您就可以使用 window.myFunction 在任何文件中。最后一个是不可取的。

Here你拥有 javascript 拥有的不同类型的模块。

关于javascript - Laravel MIX,如何在多个文件中使用单个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com