В лиспе ф-ция apply принимает на вход один аргумент — список для подстановки аргументов ф-ции. В js — 2 — объект в контексте которого применяется функция (т.е значения для подстановки свободных переменных в теле функции с this) и непосредственно список для подстановки аргументов, как и в лиспе. В лиспе, этот первый аргумент подставляется неявно, в виде лексического скопа. Таким образом, в JS мы имеем гораздо более мощную модель, включающую first-class environments. Интересно, почему в лиспе этого нет?