Вопрос здесь относится к коду ExtendScript, но я считаю, что он должен быть агностическим для любой реализации javascript.О вводе метода вызова класса javascript, который экспортируется через экспорт
Если у нас есть что-то вроде этого в файле библиотеки JS (base64.js)
exports.encode64 = encoder('+/');
//...
function encoder(extra) {
//...
}
, а затем в другой файл, который использует экспортированный метод, что первый импорт/включает/требует base64.js где
var data = "some data";
base64.encode64(data);
это значит, если мы не экспортировать метод и непосредственно вызывать кодировщик(), при условии, что base64.js будет «включено» в глобальное пространство имен, где выполняется код, то мы назвали бы это так?
encoder('+/' + data);
До сих пор экспорт, я видел, как правило, экспортировать метод без аргументов, присваивающих псевдоним функции/метода открытой вне библиотеки/файла. Но этот случай здесь странный для меня, поскольку мы передаем аргумент, и позже мы также передаем аргумент при вызове псевдонима.
Если мое предположение неверно, то каково надлежащее использование кодировщика, который бы соответствовал псевдониму base64.encode64?
Для справки/контекста полный исходный код base64.js можно найти здесь:
https://github.com/debrouwere/Extendables/blob/master/dependencies/base64.js
На соответствующую записку, есть некоторые хороший учебник, который объясняет обо всем этом изменения экспорта и требуют/импорт/включить?
От взгляда на источник 'encoder' возвращает сама функция, чтобы позволить автору библиотеки разоблачить две разные версии идентичной в ином случае функции. Вы правы, что он мог реорганизовать внутренний метод (объявленный в строке 18) в экспортированный метод и принять «дополнительный» как второй параметр, хотя выбранный подход является более дружественным интерфейсом к пользователю библиотеки. Чтобы ответить на «как позвонить» Q. Если вы получили кодер напрямую (хотя он и не экспортируется на самом деле), вы бы назвали его следующим: «var myStr = (encoder ('+ /')) (data) '- я добавил для ясности ненужная пара. –
Спасибо, полезное объяснение. Я забыл детали encoder(), что он возвращает функцию. – David