Aplicação parcial em JavaScript com ‘bind’

O método de ligação do protótipo de Função é mais comumente usado para definir o argumento implícito disso em uma função, por exemplo

var myObj = {
foo
: "bar"
};

var getFoo = function() {
return this.foo;
};

getFoo
(); // returns undefined

var boundGetFoo = getFoo.bind(myObj);

boundGetFoo
(); // returns "bar"

Também pode ser usado para definir os argumentos explícitos de uma função , enquanto permite que outros argumentos sejam fornecidos, por exemplo

var logHello = console.log.bind(null, "Hello");

logHello
("Mark"); // logs ["Hello", "Mark"]

Um grande exemplo disso está no Node.js, resolvendo o caminho para um arquivo da raiz do nosso módulo Node quando dentro de um subdiretório.

var resolve = require("path").resolve,
asset
= resolve.bind(null, __dirname, "..");

asset
("package.json");
// returns "/path/to/modules/package.json"

asset
("nested/file.js");
// returns "/path/to/modules/nested/file.js"