我正在查看一些 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 = {};