fn-partial

0.12.12 • Public • Published

fn-partial

Build Status Dependency status Dev Dependencies Status NPM Status Gittip

Feel like a memory pointer. Pass a reference to a function.

Javascript is a very dynamic language, but sometimes you need to be more dynamic.

If you need to use something as memory pointers in C isn't possible in JavaScript, but you can do an alternative: a function that calculate the result dynamically.

For example, imagine that you have a collection of players

var players = {
  one: 'Kiko',
  two: 'Ricard',
  three: 'Xavi'
};

and you have a function that return the number of players in the collection:

var size = function(objt){
  return Object.keys(objt).length;
};

Now, you want to know the numbers of players, and you need to have 4 players for start a new game.

If you do something like this:

var numPlayers = size(players);
console.log(numPlayers); // => 3
players.four = 'Ben';
console.log(numPlayers); // => 3, expected 4 :(

It's fail because the value is assigned when you call the function.

In languages as C you can create a pointer in the same memory direction and know the value in any time because the pointer referenced the value.

With this package you can simulate something like that.

var partial = require('fn-partial')
var numPlayers = partial(size, players);
console.log(numPlayers()); // => 3
players.four = 'Ben';
console.log(numPlayers()); // => 4 YEAH!

More information and the history of this code in StackOverflow

Install

npm install --save object-assign

If you want to use in the browser (powered by Browserify):

<script src="bower_components/fn-partial/dist/fn.partial.js"></script>

Usage

var partial = require('fn-partial');
 
// Call a function without arguments
var result = partial(sayHello());
result();
// => console.log("Hello World");
 
// Call a function with arguments
var result = partial(sayHello, 'Kiko', ', how are you?');
result();
// => console.log("Hello World, Kiko!, how are you?")

License

MIT © Kiko Beats

Readme

Keywords

none

Package Sidebar

Install

npm i fn-partial

Weekly Downloads

8

Version

0.12.12

License

MIT

Last publish

Collaborators

  • kikobeats