“root=..”的目的是什么?的代码
What's the purpose of `root=...` code in Async library?
Async库中有这样一段代码:
if (typeof window == 'object' && this === window) {
root = window;
}
else if (typeof global == 'object' && this === global) {
root = global;
}
else {
root = this;
}
这些代码有什么原因吗?为什么作者不直接用root = this
呢?
第一个条件只在this === window
时有效,所以root = window
和root = this
应该是等价的。第二种情况也是一样,root = global
应该等于root = this
。
我错过了什么吗?
这不仅是多余的,而且似乎还有bug。
在你的代码片段之前,有这个:
// global on the server, window in the browser
var root, previous_async;
目标是将全局对象赋值给root
。
这样的库应该被编码为在严格模式下工作(不仅在严格模式下,而且至少应该是兼容的)。在严格模式下,IIFE执行的上下文是undefined
。这段代码总是无法在严格模式下找到根对象,无论是在节点上还是在浏览器中。
注意,有一些可靠的方法可以找到根对象。标准的方法是间接调用:
var root = (1,eval)('this');
相关文章:
- 这个代码在网页中的作用和要求是什么
- 问号在这段代码中是什么意思
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 控制台中的“function floor(){[本机代码]}”是什么
- 在 Javascript 中实现解耦代码/回调的正确方法是什么?
- 这个代码是什么意思(history.replaceState和history.pushstate)
- 这段代码的含义是什么<%=一些可变的%>
- 在此代码中需要 .trigger(“更改”)是什么?
- 有谁知道这行代码的输出是什么?$.get(“http://192.168.4.1:80/”, {pin:p}.
- 这段代码的含义是什么 'start = +start ||0;' 在 JavaScript 中
- “$”的键代码是什么
- JQuery:这段代码是什么意思
- 在我的javascript文件中发现的这个奇怪的代码是什么
- 如果我只想从数组中打印任何一个元素.任何数组.那么代码会是什么
- 这段代码的语法是什么
- Javascript Carousel:是什么代码可以显示一些以前的图像
- 这是什么代码/^(d{4}|d{6})$/
- 这是什么代码?{{phrase.addAdministrator}}
- 如果原型不能访问私有变量,那么“清理”的最佳方法是什么?代码