javascript - What's the purpose of `root=...` code in Async library? -


there's snippet of code in async library:

if (typeof window == 'object' && === window) {     root = window; } else if (typeof global == 'object' && === global) {     root = global; } else {     root = this; } 

is there reason code? why didn't author use root = this?

the first condition valid when this === window, root = window , root = this should equivalent. same thing in second condition, root = global should equivalent root = this.

am missing here?

not redundant, seems buggy.

just before snippet, there's :

// global on server, window in browser var root, previous_async; 

so goal assign root global object.

such library should coded work in strict mode (not in strict mode should @ least compliant). , in strict mode, context of iife execution undefined. code fail find root object in strict mode, both on node , in browser.

note there reliable ways find root object. standard 1 indirect call:

var root = (1,eval)('this'); 

Comments

Popular posts from this blog

Magento/PHP - Get phones on all members in a customer group -

php - .htaccess mod_rewrite for dynamic url which has domain names -

Website Login Issue developed in magento -