【发布时间】:2016-12-03 07:25:40
【问题描述】:
我有一个变量,如果该变量是一个对象,我想在该对象上调用一个方法,否则我什么也不做。
我想知道我是否有任何理由不应该这样做。
var foo = null;
////////////////////////////////////////////////
// some code that could change foo to a object
////////////////////////////////////////////////
foo && foo.bar();
【问题讨论】:
-
如果你知道自己在做什么,就没有办法不去做......
-
foo 会被这样定义吗?
-
@cmac 我的意思是,如果它按预期工作,请忙于了解它是如何工作的。如果你能弄清楚,那就去做吧,因为你可以解决未来可能出现的问题。 . 如果你看不懂,请选择不太复杂和可读的版本..
-
@cmac 这种模式没有什么新东西。更多虚假和运营商的理解......
-
不确定为什么 OP 在这里遇到困难。这是一个合理的问题(我猜可能是一个重复)。我理解的问题是“如果 foo 为空,表达式是否会抛出异常,并且(隐式)表达式的值是什么?”我的回答是:“当 foo 为 null 时,此表达式可以正常工作(并且值为 null),当 foo 是实现 bar 的对象时,它可以正常工作(并且具有 bar() 的返回值)。
标签: javascript object methods logical-operators shorthand