@kingjs/reflect.define-accessor

1.0.2 • Public • Published

@kingjs/reflect.define-accessor

Extends kingjs/reflect.define-property with richer overloads.

Usage

var assert = require('assert');
var defineFunction = require('@kingjs/reflect.define-accessor');

var target = defineFunction({ bar: 1 }, 
  function foo() { return this.bar; },
  function(value) { return this.bar = value; }
);
assert(target.foo == 1);
target.foo = 2;
assert(target.bar == 2);
assert(target.propertyIsEnumerable('foo'));

var target = defineFunction({ bar: 1 }, 'foo', 
  function() { return this.bar; },
  function(value) { this.bar = value; }
);
assert(target.foo == 1);
target.foo = 2;
assert(target.bar == 2);
assert(target.propertyIsEnumerable('foo'));

var target = defineFunction({ bar: 1 }, 'foo', 
  'this.bar', 
  'this.bar = value'
);
assert(target.foo == 1);
target.foo = 2;
assert(target.bar == 2);
assert(target.propertyIsEnumerable('foo'));

API

defineAccessor(target, name, descriptor)

Overloads

defineAccessor(target, get[, set])
  => defineProperty(target, get.name || set.name, { get, set });

defineAccessor(target, name, get[, set])
  => defineProperty(target, name, { get, set });

defineAccessor(target, name, string[, string])
  => defineProperty(target, name, { get: lambda, set: lambda });

// inherited from @kingjs/reflect.define-property
defineAccessor(...)
  => defineProperty(...);

Parameters

  • target: The target on which the property will be defined.
  • name: The name of the property.
  • descriptor: A descriptor describing the property.

Install

With npm installed, run

$ npm install @kingjs/reflect.define-accessor

Dependencies

Package Version
@kingjs/is ^1.0.9
@kingjs/reflect.define-property ^1.0.2

Source

https://repository.kingjs.net/reflect/define-accessor

License

MIT

Analytics

Readme

Keywords

none

Package Sidebar

Install

npm i @kingjs/reflect.define-accessor

Weekly Downloads

1

Version

1.0.2

License

MIT

Unpacked Size

5.54 kB

Total Files

6

Last publish

Collaborators

  • kingces95