Доза эта две функции имеют имя или термин? Я уверен, что они делают, но не знают, что искать.
// edit: thanks to Bergi:
// this is a function with `no free variables` (outer variables)
function add (a, b) { return a + b }
и
// edit: thanks to Bergi:
// this is a function with `free variables` (b) if you didn't know that
var b = 2
function add (a) { return a + b }
Называется ли это чем-то особенным, если функция выходит за пределы своей области видимости? и как вы называете функцию, которая ничего не использует вне своей области видимости?
То, что я хотел бы объяснить кому-то, - это если мне написать этот служебный файл, который экспортировал две вспомогательные функции
// util
function divide (a, b) {
return a / b
}
function half (a) {
return divide(a, 2)
}
export {
divide,
half
}
А потом в другом файле я бы использовал только функцию деления
import { divide } from util
Тогда WebPack / rollup сможет встряхнуть дерево и сбросить функцию half
в последнем пакете
Но если куда импортировать функцию half
из служебного файла
import { half } from util
Но на самом деле мне не нужна функция divide
в моем основном скрипте. В любом случае, я бы в итоге имел обе функции в своем комплекте, потому что half
зависит от divide
Если бы я изменил функцию, чтобы не использовать какие-либо переменные вне ее собственной области видимости, например:
function half (a) {
return a / 2
}
тогда это будет "свободная зависимость".