Added very short JS solution based on argument binding. Non-self-mutating!