Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这行javascript是什么意思?_Javascript_Properties - Fatal编程技术网

这行javascript是什么意思?

这行javascript是什么意思?,javascript,properties,Javascript,Properties,我刚打开Retina.js,希望能学到一些东西,但第一行我就被难住了 var root=(typeof导出=='undefined'?窗口:导出) 这条线到底是干什么的 再往下 function Retina() {} root.Retina = Retina; 视网膜属性是如何在不首先定义它的情况下从根中设置的?如果导出类型等于“未定义”,那么我们将其设置为window。否则,我们将其设置为导出 它是三元的,你可以这样做: if(typeof(exports) === 'undefin

我刚打开Retina.js,希望能学到一些东西,但第一行我就被难住了

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;
}