Да, есть ...
Продолжайте читать, в ES6 мы можем export
и import
часть или весь файл javascript в другой ...
Но подождите, ES6 поддерживается не во всех браузерах, поэтому вам нужно только перенести его с помощью babel.js
, например ...
Итак, вы создаете класс, как показано ниже:
class Person {
constructor(name) {
this.name = name;
}
build() {
return new Person(this);
}
}
module.exports = Person;
в другом файле JavaScript, выполните импорт как:
import { Person } from 'Person';
Вам также может потребоваться такой файл, как:
const Person = require('./Person');
Если вы используете более старую версию JavaScript, вы можете использовать requirejs :
requirejs(["helper/util"], function(util) {
//This function is called when scripts/helper/util.js is loaded.
//If util.js calls define(), then this function is not fired until
//util's dependencies have loaded, and the util argument will hold
//the module value for "helper/util".
});
Если вы хотите придерживаться более старых версий материалов, таких как jQuery , вы также можете использовать что-то вроде getScript :
jQuery.getScript('./another-script.js', function() {
// Call back after another-script loaded
});
И последнее, но не менее важное: не забывайте, что вы можете сделать традиционный способ объединения сценариев, используя тег <script>
...
<script src="./first-script.js"></script>
<script src="./second-script.js"></script>
<script src="./third-script.js"></script>
Есть также атрибуты async и defer , о которых я должен упомянуть здесь ...
Примечание: Существует несколько способов выполнения внешнего скрипта:
- Если присутствует асинхронный: скрипт выполняется асинхронно
с остальной частью страницы (сценарий будет выполняться, пока страница
продолжает анализ)
- Если асинхронный режим отсутствует и отсрочка
присутствует: скрипт выполняется по завершении страницы
парсинг
- Если нет ни асинхронного, ни отсроченного: скрипт
извлекается и выполняется немедленно, прежде чем браузер продолжит работу
парсинг страницы