1.0.2 • Published 7 years ago
@kingjs/property-descriptor.lambdize v1.0.2
@kingjs/property-descriptor.lambdize
Wraps strings found in a descriptor's value, get or set into an appropriate corresponding lambda functions.
Usage
var assert = require('assert');
var lambdize = require('@kingjs/property-descriptor.lambdize');
// create a lambda function that simply returns zero
var fooDescriptor = lambdize.call({ value: '0' }, 'foo');
assert(fooDescriptor.value.name = 'foo');
var target = Object.defineProperty({ }, 'foo', fooDescriptor);
assert(target.foo() == 0);
// create lambda accessors that simply access a property `field`
var barDescriptor = lambdize.call({
get: 'this.field',
set: 'this.field = value'
}, 'bar');
assert(barDescriptor.get.name = 'bar');
assert(barDescriptor.set.name = 'bar');
var target = Object.defineProperty({ field: 1 }, 'bar', barDescriptor);
assert(target.bar == 1);
target.bar = 2;
assert(target.field == 2);API
lambdize(this[, name])Parameters
this: The descriptor whosevalue,getorsetproperty, if strings, will be replaced with appropriate corresponding lambda functions. Onlysethas arguments, a single parameter namedvalue.name: The name to assign any freshly created lambda functions.
Returns
Returns this after it's strings are replaced with lambda functions.
Remarks
A normal lambda uses the this from the surrounding lexical scope. These pseduo-lambda's use the this supplied at runtime.
Install
With npm installed, run
$ npm install @kingjs/property-descriptor.lambdizeSource
https://repository.kingjs.net/property-descriptor/lambdize
License
MIT