Reason detrás del uso de 'instanceof function () {}'?

En el Centro de desarrolladores de Mozilla, hay una página sobreFunction.prototype.bind y proporciona una función de compatibilidad para navegadores que no admiten esta función.

Sin embargo, al analizar este código de compatibilidad no puedo descubrir por qué usaninstanceof nop. nop se ha establecido enfunction() {}. ¿Qué parte de la especificación ECMA enbind ¿se corresponde con esto? ¿Y qué variables son una instancia defunction() {}?

Los siguientes retornosfalse, así que no sé completamente para qué se utiliza. Qué cosas vuelven verdaderas al hacer uninstanceof function() {} cheque?

(function() {}) instanceof (function() {}) // false

El código es el siguiente

Function.prototype.bind = function( obj ) {
    if(typeof this !== 'function')
      throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');

    var slice = [].slice,
        args = slice.call(arguments, 1), 
        self = this, 
        nop = function () {}, 
        bound = function () {
          return self.apply( this instanceof nop ? this : ( obj || {} ), 
                              args.concat( slice.call(arguments) ) );    
        };

    bound.prototype = this.prototype;

    return bound;
};

Respuestas a la pregunta(2)

Su respuesta a la pregunta