1.1.4 • Published 11 years ago
cruks-lib-function v1.1.4
cruks-lib-function
Utility belt for automating frequent custom operations over native JavaScript Function.
Examples
Listing JavaScript function arguments
var assert = require("assert"),
MyFunction = require("cruks-lib-function").Function;
function Constructor (a, b, c) {
}
assert.deepEqual(["a", "b", "c"], new MyFunction(Constructor).parameters;
Using .apply
when calling new
var assert = require("assert"),
Constructor,
MyFunction = require("cruks-lib-function").Function,
instance;
Constructor = function (a, b, c) {
this.a = a;
this.b = b;
this.c = c;
};
Constructor = new MyFunction(Constructor);
instance = Constructor.new.apply(Constructor, [1, 2, 3]);
assert.strictEqual(1, instance.a);
assert.strictEqual(2, instance.b);
assert.strictEqual(3, instance.c);
Making any function appliable to Array.prototype.map
var assert = require("assert"),
arr,
Constructor,
Mappable = require("cruks-lib-function").Mappable;
Constructor = function (a) {
this.a = a;
};
arr = [1, 2, 3].map(new Mappable(Constructor));
assert.strictEqual(1, arr[0].a);
assert.strictEqual(2, arr[1].a);
assert.strictEqual(3, arr[2].a);
Invoking function with named arguments
var assert = require("assert"),
Invocable = require("cruks-lib-function").Invocable;
function Constructor (a, b) {
return b - a;
}
assert.strictEqual(1, new Invocable(Constructor).invoke({
"a": 4,
"b:" 5
}));
assert.strictEqual(2, new Invocable(Constructor).invoke({
"a": 1,
"b:" 3
}));