Edit this page

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

This feature is experimental. It may be changed or removed in a future version.

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


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)


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'


key string