Closures in JavaScript are a powerful feature that allows functions to access variables from their outer (enclosing) lexical scope, even after that outer function has finished executing. Closures are created every time a function is created, at function creation time.