我正在查看一些 Backbone.js 示例,它们var app = app || {};
位于所有 .js 文件的顶部。我理解这个的字面意思,但它对其他一切有什么作用?
编辑:你们真的很快。
我正在查看一些 Backbone.js 示例,它们var app = app || {};
位于所有 .js 文件的顶部。我理解这个的字面意思,但它对其他一切有什么作用?
编辑:你们真的很快。
app
如果尚未定义,它将把变量定义为一个空对象。
这是有效的,因为false
在 Javascript 中未定义的计算结果。
如果它被定义,它仍然可以被重新定义为一个空对象,如果它有一个评估为 的值false
,例如一个空字符串。
||
javascript 中的运算符将返回第一个操作数,如果它是“真实的”。如果不是,它将返回第二个操作数。如果app
还没有赋值,undefined
则为 ,即“假”。因此,如果它没有被定义或者是错误的,一个空对象{}
将被分配给app
.
这意味着“如果尚未定义 app,请将其定义为空对象”。
in的OR
运算符JavaScript
不一定产生 a boolean
。如果表达式的左侧产生false
,则赋值采用表达式的右侧。
如果app
已经定义,它什么也不做。如果app
未定义,则相当于var app = {};