I assigned my arrow function to outside variable.But I did not understand why this is refer to 'Animal' constructor. When I called function 'fun' it printed 'Animal, true'. But I thought it would print 'Window, false'.
function Animal() {
this.sleep = () => {
console.log(this, this instanceof Animal)
}
}
let animal = new Animal();
animal.sleep(); // Animal, true
let fun = animal.sleep
fun = animal.sleep;
fun() // Animal, true -- why?