这行javascript是什么意思
What does this line of javascript mean?
我刚打开Retina.js,希望能学到一些东西,但我在第一行就被难住了。
var root = (typeof exports === 'undefined' ? window : exports);
这条线到底是干什么的?
再往下,
function Retina() {}
root.Retina = Retina;
Retina属性是如何在没有首先定义的情况下从根开始设置的?
typeof
是一个运算符,当用于根本没有定义的变量时,它仍然会产生值'undefined'
。因此表达式:
(typeof exports === 'undefined' ? window : exports)
检查exports
是否不在作用域中。如果不是,它会产生window
(浏览器中的全局对象),如果是,它会导致exports
(从[某种]模块导出东西的标准名称——请参阅CommonJS、AMD和RequireJS之间的关系?)。然后将结果分配给root
。
如果你想知道条件运算符
var d = a ? b : c;
或多或少相当于
var d;
if (a) {
d = b;
} else {
d = c;
}
至于root.Retina = Retina;
,就像JavaScript中的所有其他属性一样,不需要声明它,也没有声明它的功能
如果导出类型等于"undefined",则我们将其设置为window。否则,我们将其设置为导出。
它是三元的,你可以这样做:
if(typeof(exports) === 'undefined')
root = window;
else
root = exports
var root = (typeof exports === 'undefined' ? window : exports);
此行检查exports
是否不是undefined
。在Node.js环境中,exports
特殊变量是指当前模块。因此,如果没有定义exports
,那么您将处于浏览器或Node.js环境中。
因此,如果您在浏览器中,root
将引用window
对象,否则为当前模块对象(exports
)。root.Retina
将Retina
函数分配给窗口或当前模块。
相关文章:
- @@(“at at”)在ES6 JavaScript中是什么意思
- minimy javascript是什么意思?Backbone.js
- var w = q||问2;这个表达式是什么意思
- 什么'它的意思是当一个变量位于括号外时
- 函数(i,val)在javascript中是什么意思
- 问号在这段代码中是什么意思
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- 什么意思是“;向原型添加方法”;
- ||{}在javascript中是什么意思
- “转义字符串”在Regex中是什么意思?(Javascript)
- 什么是“;传递给NewPromiseCapability的非构造函数值“;意思是
- 什么是“;(''+元素+'')“;意思是
- 这个代码是什么意思(history.replaceState和history.pushstate)
- $(function () { } in javascript/Jquery 中的意思是什么
- [$rootScope:infdig]或[$rootScope:inprog]在angular中的意思是什么?
- “/*@”的意思是什么
- 人们说“字面意思”是什么意思?在JavaScript
- 这两句话的意思是什么?
- 在javascript SRC属性中定义PHP文件的意思是什么?
- 什么'这行在javascript中的意思是什么