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"