Fungsi ini dapat disebut seolah-olah berada di File JS yang sama selama file yang mengandung definisi fungsi telah dimuat sebelum penggunaan pertama fungsi tersebut.
Yaitu
File1.js
function alertNumber(number) {
alert(number);
}
File2.js
function alertOne() {
alertNumber("one");
}
HTML
<head>
....
<script src="File1.js" type="text/javascript"></script>
<script src="File2.js" type="text/javascript"></script>
....
</head>
<body>
....
<script type="text/javascript">
alertOne();
</script>
....
</body>
Cara lain tidak akan berhasil.
Seperti yang ditunjukkan dengan tepat oleh Stuart Wakefield . Cara lain juga akan berhasil.
HTML
<head>
....
<script src="File2.js" type="text/javascript"></script>
<script src="File1.js" type="text/javascript"></script>
....
</head>
<body>
....
<script type="text/javascript">
alertOne();
</script>
....
</body>
Apa yang tidak akan berhasil adalah:
HTML
<head>
....
<script src="File2.js" type="text/javascript"></script>
<script type="text/javascript">
alertOne();
</script>
<script src="File1.js" type="text/javascript"></script>
....
</head>
<body>
....
</body>
Meskipun alertOne
didefinisikan saat memanggilnya, secara internal ia menggunakan fungsi yang masih belum didefinisikan ( alertNumber
).
Jawaban di atas memiliki asumsi yang salah bahwa urutan penyertaan file penting. Karena fungsi alertNumber tidak dipanggil sampai fungsi alertOne dipanggil. Selama kedua file dimasukkan oleh waktu waspada, satu disebut urutan file tidak masalah:
[HTML]
[JS]
Atau bisa dipesan seperti berikut:
[HTML]
[JS]
Tetapi jika Anda melakukan ini:
[HTML]
[JS]
Itu hanya masalah tentang variabel dan fungsi yang tersedia pada saat eksekusi. Ketika suatu fungsi didefinisikan, ia tidak menjalankan atau menyelesaikan variabel apa pun yang dideklarasikan di dalam sampai fungsi itu kemudian dipanggil.
Memasukkan file skrip yang berbeda tidak berbeda dengan skrip yang berada dalam urutan itu dalam file yang sama, dengan pengecualian skrip yang ditangguhkan:
maka kamu perlu hati-hati.
sumber
function myfunction() {
dan script2:alert();}
Ini tidak akan bekerja. Itu mengganggu saya karena saya mencoba memodulasi file js yang terlalu panjang. Lihat stackoverflow.com/questions/20311604/...this
konteks, jika salah satu fungsi ada di kelas?this
terikat pada titik fungsi dipanggil (kecualibind
disebut sebelumnya). Dua fungsi dalam dua file terpisah tidak akan berbagithis
konteks secara otomatis, dalam contoh di atas tidak adathis
konteks, yaituwindow
dalamundefined
mode non-ketat atau ketat. Anda bisa membuat fungsi di skrip lain berbagi nilai yang samathis
dengan menetapkan fungsi sebagai anggota objek (yaitu di dalam konstruktorthis.method = myOtherFunc
) atau menggunakan bind. Silakan kirim pertanyaan SO dengan lebih detail jika Anda membutuhkan jawaban yang lebih mendalam. Cheers, StuartSelama keduanya dirujuk oleh halaman web, ya.
Anda cukup memanggil fungsi seolah-olah mereka berada di file JS yang sama.
sumber
Jika semua file disertakan, Anda dapat memanggil properti dari satu file ke yang lain (seperti fungsi, variabel, objek dll.)
Js fungsi dan variabel yang Anda tulis dalam satu file js - katakanlah a.js akan tersedia untuk file js lain - katakanlah b.js selama kedua a.js dan b.js disertakan dalam file menggunakan berikut termasuk mekanisme (dan dalam urutan yang sama jika fungsi dalam b.js memanggil satu dalam a.js).
sumber
ES6: Alih-alih memasukkan banyak file js menggunakan
<script>
dalam .html Anda dapat memasukkan hanya satu file utama misalnyascript.js
menggunakan atributtype="module"
( dukungan ) dan di dalamnyascript.js
Anda dapat memasukkan file lain:Dan dalam
script.js
file termasuk file lain seperti itu:Dalam 'module.js' Anda harus mengekspor fungsi / kelas yang akan Anda impor
Contoh kerja di sini .
sumber
ya kamu bisa . Anda perlu merujuk keduanya
JS file
ke.aspx
halaman tersebutsumber
Anda dapat memanggil fungsi yang dibuat dalam file js lain dari file yang sedang Anda kerjakan. Jadi untuk ini pertama-tama Anda perlu menambahkan file js eksternal ke dalam dokumen html sebagai-
Fungsi yang ditentukan dalam file javascript eksternal -
Untuk memanggil fungsi ini di file Anda saat ini, panggil saja fungsi sebagai -
Jika Anda ingin meneruskan parameter ke fungsi, maka tentukan fungsi sebagai-
Dan panggil fungsi ini dalam file Anda saat ini sebagai -
sumber
$.fn
penugasan dalam klausa siap dokumen tidak ada gunanyaBerikut adalah contoh yang lebih deskriptif dengan cuplikan CodePen terlampir:
1.js
2.js
index.html
keluaran
Coba snippet CodePen ini: tautan .
sumber
Yah, saya menemukan solusi manis lain.
window['functioName'](params);
sumber
Bagi mereka yang ingin melakukan ini di Node.js (menjalankan skrip di sisi server) opsi lain adalah menggunakan
require
danmodule.exports
. Berikut adalah contoh singkat tentang cara membuat modul dan mengekspornya untuk digunakan di tempat lain:file1.js
file2.js
sumber