brn*_*nd0 3 javascript npm laravel laravel-mix
我有三个文件:
my_function.js
function myFunction() {
console.log('my function');
}
Run Code Online (Sandbox Code Playgroud)
如何在我的文件scripts_1.js和中使用此功能scripts_2.js?我将这两个用作users.js:
require('scripts_1');
require('scripts_2');
Run Code Online (Sandbox Code Playgroud)
我admins.js只使用一个:
require('scripts_2');
Run Code Online (Sandbox Code Playgroud)
稍后,我将和文件webpack.mix.js编译为两个单独的缩小的 js 文件。usersadmin
require('my_function')如果我只是在我的scripts_1和文件中使用,scripts_2这不起作用(可能myFunction()不在同一范围内)。
但是,如果我将函数附加到window变量,我就可以完成这项工作,这样my_function现在看起来像这样:
window.myFunction = function() { ... }
Run Code Online (Sandbox Code Playgroud)
此时,我什至不需要在任何scripts_1和scripts_2文件中要求它(但我在我的users.js和admin.js文件中要求它),但这在某种程度上感觉不对。
太棒了;
我想知道如何定义一个辅助 js 函数,我可以使用 Laravel MIX 在多个其他 js 文件中重用该函数。
你在出口吗myFunction?
在节点中,你可以这样做
module.exports = {
myFunction: function () {
console.log('my function');
}
}
Run Code Online (Sandbox Code Playgroud)
有了 webpack 和朋友,你可以简单地
export function myFunction() {
console.log('my function');
}
Run Code Online (Sandbox Code Playgroud)
然后就可以导入并使用该函数了
const someName = require('my_function.js')
someName.myFunction()
Run Code Online (Sandbox Code Playgroud)
导出函数就是告诉模块(在这种情况下是文件)具有该函数。当您导入模块时,您将能够使用该函数,它是某种类型的公共/私有行为,导出的函数/对象...对其他模块是公共的,非导出的函数/对象/...是私有的。
要使用导出的函数,首先需要在要使用它的每个文件中导入该模块(require('themodule'))。相反,使用window,您可以在全局对象中附加window一个新属性,因此一旦您在某个文件中导入了该模块,您就可以window.myFunction在任何文件中使用。最后一个是不可取的。
这里有 javascript 所具有的不同类型的模块。
| 归档时间: |
|
| 查看次数: |
2390 次 |
| 最近记录: |