I have a DataTable with a lot of properties. Every time I want to use it, I have to copy all of them. It makes my view's code behind a huge mess. So I decide to create a separate .js file and copy the reusable code there but I can not reference it in my main file. Some part of my .js code is like bellow:
function loadDataTable() {
$(".yadcf-filter-range-date").persianDatepicker();
dataTable = $('#SP1').DataTable({
serverSide: true,
processing: true,
pageLength: 10,
infoFiltered: true,
orderMulti: false,
scrollX: true,
scrollY: true,
bStateSave: true,
columnDefs: [{ orderable: false, targets: [15] }],
.
.
.
}
I create a function in another js file for example like bellow:
function CommonPart(i) {
serverSide: true,
processing: true,
pageLength: 10,
infoFiltered: true,
orderMulti: false,
scrollX: true,
scrollY: true,
bStateSave: true,
columnDefs: [{ orderable: false, targets: [i] }]
}
I do not know how to use CommonPart in my main code for example like bellow:
function loadDataTable() {
$(".yadcf-filter-range-date").persianDatepicker();
dataTable = $('#SP1').DataTable({
CommonPart(15);
...
});
My preferred way to accomplish this is with ECMAscript modules.
You can place each of those functions into a separate file. You can name the files what every you like, but I usually name them after the function it contains. For web, I'd give the file a .js file extension. In node, I'd give it a .mjs extension.
In each file, prepend export on each function like this:
export function funcName()
{
}
Then from your main code file, you can import your functions from those separate files like this:
import { funcName } from "./fileName.mjs";
After this, you can use the functions as if they were declared in your main code file (because they are now imported).
The best and most trusted resource id MDN webdocs link: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules
if you are still confused feel free to ask question..