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.
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 theup.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'