这行javascript是什么意思?
我刚打开Retina.js,希望能学到一些东西,但第一行我就被难住了这行javascript是什么意思?,javascript,properties,Javascript,Properties,我刚打开Retina.js,希望能学到一些东西,但第一行我就被难住了 var root=(typeof导出=='undefined'?窗口:导出) 这条线到底是干什么的 再往下 function Retina() {} root.Retina = Retina; 视网膜属性是如何在不首先定义它的情况下从根中设置的?如果导出类型等于“未定义”,那么我们将其设置为window。否则,我们将其设置为导出 它是三元的,你可以这样做: if(typeof(exports) === 'undefin
var root=(typeof导出=='undefined'?窗口:导出)代码>
这条线到底是干什么的
再往下
function Retina() {}
root.Retina = Retina;
视网膜属性是如何在不首先定义它的情况下从根中设置的?如果导出类型等于“未定义”,那么我们将其设置为window。否则,我们将其设置为导出
它是三元的,你可以这样做:
if(typeof(exports) === 'undefined')
root = window;
else
root = exports
此行检查导出
是否为未定义
。在Node.js环境中,导出
特殊变量引用当前模块。因此,如果未定义导出,则您处于浏览器Node.js环境中
因此,如果您在浏览器中,根目录
将引用窗口
对象,否则,当前模块对象(导出
)root.Retina
将Retina
函数分配给窗口或当前模块。typeof
是一个运算符,当用于未定义的变量时,仍然会导致值“未定义”
。所以这个表达:
(typeof exports === 'undefined' ? window : exports)
检查导出
是否不在范围内。如果不是,则生成窗口
(浏览器中的全局对象),如果是,则生成导出
(用于从[排序]模块导出内容的标准名称–请参阅)。然后将结果分配给根目录
如果您想知道条件运算符
var d = a ? b : c;
多少相当于
var d;
if (a) {
d = b;
} else {
d = c;
}
至于root.Retina=Retina代码>,就像JavaScript中的所有其他属性一样,不需要声明它,也没有工具来声明它。在这一行中,您不了解的到底是什么?你知道操作员的类型是什么吗?你知道条件运算符是什么吗?(a?b:c
)。我的问题可能是你的重复!我在寻找关于出口逻辑的解释。谢谢
var d;
if (a) {
d = b;
} else {
d = c;
}