Cita:  
					Iniciado por _cronos2 
  Eeeeeerm... ¿un poco de documentación por favor? XD
    en realidad no es tan complicado. 
bind lo que hace es devolver una funcion donde enlaza otra funcion con un objeto en particular. no entiendo porque tanto rodeo cuando 
call y 
apply cumplen con esa expectativa. veamoslo parte por parte...  
Código:
 Function.prototype.bind = function(scope) {
...
}
   bind es un metodo que se hereda en todas las funciones puesto que esta declarado en el prototipo de Function. el argumento 
scope es el objeto que se desea enlazar con otra funcion. 
la variable 
_function retiene la referencia de la funcion a enlazar con el objeto. esta variable se crea para poder hacer un closure. recuerda que 
this siempre hace referencia a un objeto, al estar ubicado en el prototipo del objeto Function, 
this siempre obtiene como referencia la funcion desde el cual se invoca 
bind. es decir, en 
alert.bind(), 
this hace referencia a 
alert.  
Código:
     return function() {
        return _function.apply(scope, arguments);
    }
  una funcion anonima que se devuelve cuando se invoca 
bind. dentro de esa funcion anonima contiene lo siguiente.  
Código:
         return _function.apply(scope, arguments);
  aqui se utiliza la variable 
_function el cual es la referencia de 
this o lo mismo que la funcion a enlazar. en el ejemplo anterior, 
_function vendria siendo la funcion 
alert. entonces, desde dicha referencia se invoca el metodo 
apply pasando como argumento el objeto (
scope) al cual se va aplicar la funcion mas posibles argumentos (
arguments) cuando se invoca la funcion devuelta por 
bind. 
en mi opinion, en muy pocos casos le veo utilidad y mas aun pudiera ser peligroso si el navegador no maneja bien el colector de basura (garbage collector) como es el caso de iexplorer. si yo tuviera que enlazar una funcion a un objeto, simplemente usaria directamente 
call o 
apply. usando el mismo ejemplo de @masterpuppet  
Código:
 // ejemplo con bind ;
var fn = function(){
    alert(this);
}.bind(objetos);
fn();
// ejemplo nativo ;
(function(){alert(this);}).call(objetos);