bind-property-descriptor

bind a property descriptor (value, getter and setter)

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
bind-property-descriptor
102.0.02 years ago7 years agoMinified + gzip package size for bind-property-descriptor in KB

Readme

bind-property-descriptor Build Status
Bind a property descriptor (value, getter and setter).

Install

Installation of the npm package:
> npm install --save bind-property-descriptor

Usage

This test data will be used for the examples:
const emma = {
  firstName: 'Emma',
  lastName: 'Russel',
  get fullName () {
    return `${this.firstName} ${this.lastName}`
  }
}

bindPropertyDescriptor(descriptor, thisArg) → boundDescriptor

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

getBoundPropertyDescriptor(obj, prop, thisArg = obj) → boundDescriptor

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

Contributions are very welcomed, either on the documentation or on the code.
You may:
you've encountered;
  • fork and create a pull request.

License

ISC © Julien Fontanet