什么是“var app = app || {};”做?

时间:2013-04-29 17:29:17

标签: javascript backbone.js

我正在查看一些Backbone.js示例,他们在所有.js文件的顶部都有var app = app || {};。我理解这个的字面含义,但它对其他一切有什么作用呢?

编辑:你们真的很快。

4 个答案:

答案 0 :(得分:21)

如果尚未定义,则将变量app定义为空对象。

这是有效的,因为未定义的评估结果为Javascript中的false

如果已定义,如果它具有值为false的值(如空字符串),则仍可将其重新定义为空对象。

答案 1 :(得分:18)

javascript中的||运算符将返回第一个操作数,如果它是“truthy”。如果不是,它将返回第二个操作数。如果尚未分配app,则为undefined,即“假”。因此,如果未定义或以其他方式为假,则会将空对象{​​{1}}分配给{}

答案 2 :(得分:5)

这意味着"如果尚未定义app#34; ,则将app定义为空对象。

OR中的JavaScript运算符不一定会产生boolean。如果表达式的左侧产生false,那么赋值将采用表达式的右侧。

答案 3 :(得分:2)

如果已定义app,则它不执行任何操作。 如果未定义app,则它等同于var app = {};