private var _foo:Foo;
public function getInstance():Foo
{
return _foo || (_foo = new Foo());
}
代码短小、功能俱全,省去if判断。
MDN上逻辑表达式的规则如下:
运算符 | 范例 | 描述 |
---|---|---|
&& | expr1 && expr2 | (逻辑与) 如果expr1能被转换为false,那么返回expr1;否则,返回expr2 。因此,&& 用于布尔值时,当操作数都为true时返回true;否则返回false. |
|| | expr1 || expr2 | (逻辑或) 如果expr1能被转换为true,那么返回expr1;否则,返回expr2 。因此,||用于布尔值时,当任何一个操作数为true则返回true;如果操作数都是false则返回false。 |
! | !expr | (逻辑非) 如果操作数能够转换为true则返回false;否则返回true。 |