$destroy() - This function permanently detached the current scope with all of its children from the parent scope. This is required when child scopes are no longer needed. Hence, $destroy() function is called to remove these scopes from the browser’s memory.

When $destroy() is called all the watchers and listeners get removed and the object which represented the scope becomes eligible for garbage collection.