JsCommunity / bind-property-descriptor

Bind a property descriptor (value, getter and setter)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

  • report any issue you've encountered;
  • fork and create a pull request.

License

ISC © Julien Fontanet

About

Bind a property descriptor (value, getter and setter)


Languages

Language:JavaScript 100.0%