Bind a property descriptor (value, getter and setter).
Installation of the npm package:
> npm install --save bind-property-descriptor
This test data will be used for the examples:
const emma = {
firstName: 'Emma',
lastName: 'Russel',
get fullName () {
return `${this.firstName} ${this.lastName}`
}
}
Creates a new property descriptor bound to an object.
The value (if a function), getter and/or setter will be called with the bound object.
import { bindPropertyDescriptor } from 'bind-property-descriptor'
const obj = {}
const descriptor = Object.getOwnPropertyDescriptor(emma, 'fullName')
const boundDescriptor = bindPropertyDescriptor(descriptor, emma)
Object.defineProperty(obj, 'fullName', boundDescriptor)
obj.fullName
// → Emma Russel
Because it's a common case to first get the descriptor and then bind it, this helper is provided.
import { getBoundPropertyDescriptor } from 'bind-property-descriptor'
const obj = {}
const boundDescriptor = getBoundPropertyDescriptor(emma, 'fullName')
Object.defineProperty(obj, 'fullName', boundDescriptor)
obj.fullName
// → Emma Russel
Contributions are very welcomed, either on the documentation or on the code.
You may:
- report any issue you've encountered;
- fork and create a pull request.
ISC © Julien Fontanet