Tengo curiosidad,
Este...
let s = { f: window.fetch }; sf("https://www.google.com");falla con
Error al ejecutar 'buscar' en 'Ventana': invocación ilegal
Mientras esto funciona...
let s = { f: window.fetch.bind(window) }; sf("https://www.google.com");¿Cómo soluciona este último el problema? ¿Hay alguna teoría detrás de por qué funciona de esa manera?
Por algún propósito interno, la función fetch debe tener this igual que window . Cuando crea su propio objeto y simplemente asigna la función de búsqueda como una de sus propiedades, la función de búsqueda no tiene acceso al objeto de la window como this .
La especificación de fetch describe las cosas para las que se podría usar la window . Es posible que pueda hacer que su código original funcione configurando no-window , pero no lo he probado.