Edit this page

up.util up.util.copy.key
JavaScript property

This feature is experimental. Please share your experiences so we know what to keep or change.

This property contains the name of a method that user-defined classes may implement to hook into the up.util.copy() protocol.

Example

We have a user-defined Account class that we want to use with up.util.copy():

class Account {
  constructor(email) {
    this.email = email
  }

  [up.util.copy.key]() {
    return new Account(this.email)
  }
}

Note

The protocol method is not actually named 'up.util.copy.key'. Instead it is named after the value of the up.util.copy.key property. To do so, the code sample above is using a computed property name in square brackets.

We may now use Account instances with up.util.copy():

original = new User('foo@foo.com')

copy = up.util.copy(original)
console.log(copy.email) // prints 'foo@foo.com'

original.email = 'bar@bar.com' // change the original
console.log(copy.email) // still prints 'foo@foo.com'

Value

key string