在JS中,他们在下一行说什么?
members = members || {};
我对 OR 运算符感到困惑。他们是说如果成员不为空,则使其等于成员或创建一个新对象?
它的意思是,如果members
不是undefined
或"假"的东西,那么它会将其设置为 members
否则它会将其设置为一个新的空 JavaScript 对象。
如果代码多次运行,则通常使用这种类型的代码。第一次通过members
通常是undefined
但随后它会有一个你不想失去的价值。
使用这些类型的语句需要注意的事项:一些实际值(如 0
或 false
)将评估为"错误"条件。在这种情况下,这不是问题。将来,如果您使用类似的东西,请记住这一点。任何"虚假"都将默认为||
语句的"另一方"。在这种情况下,{}
.
members = members || {};
这意味着如果成员变量不是未定义的,则members == members
其他变量members == {}
这种情况用于成员返回 object({}) 然后使用 members
,如果成员不返回对象,则使用 {}
它使用 Javascripts 返回 || 运算符的值,即"返回第一个真实的东西"
所以在这种情况下,如果成员存在,它将返回成员,否则它将返回 {}。
如果尚未设置,这是一种设置内容的快速方法(例如,实现函数的默认参数)
这基本上意味着如果成员已经存在使用它,否则创建一个新对象。
他们说,如果变量成员不存在,则将其声明为空对象。
如果它确实存在,请使用它
编辑:正如所指出的,成员必须是"假"值才能重置为空对象。使用此技术时,如果成员有可能设置为 0、空字符串等,请小心。