Jest to fragment kodu w Async library:Jaki jest cel "root = ..." kodu w bibliotece Async?
if (typeof window == 'object' && this === window) {
root = window;
}
else if (typeof global == 'object' && this === global) {
root = global;
}
else {
root = this;
}
Czy jest jakiś powód, dla wszystkich tego kodu? Dlaczego autor nie użył po prostu root = this
?
Pierwszy warunek jest ważny tylko wtedy, gdy this === window
, a więc root = window
i root = this
powinien być równoważny. To samo w drugim warunku, gdzie root = global
powinno być równoważne z root = this
.
Czy tu czegoś brakuje?
[poprosiłem autora] (https://twitter.com/DenysSeguret/status/606427206806568960). Prawdopodobnie da lepszą odpowiedź niż moja;) –