x = {}
function f1() {
this.v1 = 'cool'
try {
console.log('v1:', v1)
} catch (e) {
console.log('error')
}
}
f1.bind(x)()
f1()
f1.bind(x)()
f1()
Вывод:
error
v1: cool
v1: cool
v1: cool
Объясните почему этот код выдаёт error сначала, а потом только cool.
Как вообще получается что v1 может обходиться без this в некотором случае?