我正在看一些Backbone.js示例,它们在所有.js文件的顶部都有var app = app || {};
。我理解这句话的字面意思,但相对于其他一切,它能做什么呢?
编辑:你们真的真的很快。
发布于 2013-04-30 01:30:42
它会将变量app
定义为空对象(如果尚未定义)。
这之所以有效,是因为在Javascript中,未定义的计算结果为false
。
如果定义了它,如果它有一个计算结果为false
的值,例如空字符串,那么它仍然可能被重新定义为空对象。
发布于 2013-04-30 01:33:27
javascript中的||
操作符将返回第一个操作数,如果它是“真的”。如果不是,它将返回第二个操作数。如果未分配app
,则为undefined
,即falsey。因此,如果它未定义或为falsey,则将为app
分配一个空对象{}
。
发布于 2013-04-30 01:31:05
这意味着“如果它还没有定义,就将它定义为一个空对象”。
JavaScript
中的OR
运算符不一定会生成boolean
。如果表达式的左侧产生false
,则赋值取表达式的右侧。
https://stackoverflow.com/questions/16284724
复制相似问题