这两个功能是否有名称或术语?我确定他们会这样做,但不知道要搜索什么。
// 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
}
那么它将是“依赖”免费的。