DEV Community

Discussion on: Pure Functions Explained for Humans

Collapse
 
skonik profile image
Sergey Konik • Edited

Thank you for the article. Brings some clarity regarding code quality.

Can we consider functions that return new objects with updated properties as pure?
e.g

user = {
   username: "jack",
};

function updateUsername(user, new_username) {
  return {
    ...user,
    username: new_username,
  }
};

user = updateUsername(user, "tester");
// user { username: "tester" }

Enter fullscreen mode Exit fullscreen mode

What do you think?

Collapse
 
ashik224 profile image
Ashik Al Abdullah

From what I understood, this function would be impure. Because, here, user object is an input for the method. And inside the updateUsername(), we are mutating its value. According to this blog, the function will become impure if we mutate the input.