假设我们有这个功能:
loadView : function(view) {
this.view && this.view.remove();
this.view = view;
}
第一行有什么作用?例如,如果该行是this.view&& this.otherView,如果view和otherView都存在则返回true,如果其中一个不存在则返回false,但现在最后调用了一个函数,这让我感到困惑。
第一行是否相当于:
if(this.view) {this.view.remove()}
答案 0 :(得分:3)
答案 1 :(得分:1)
它被称为守卫运营商。你通常会使用&&以这种方式
if(thing1 === 1 && thing2 === 2){}
你会注意到我们想要检查两件事情是否真实。它的工作方式是我们知道如果第一个表达式(thing1 === 1)没有计算为true,那么'thing 2 === 0'将永远不会运行。为什么要运行第二个表达式,如果它们都必须为true且第一个表达式已经失败。利用这些知识,我们现在可以使用它作为一个守卫,不运行第二个表达式,除非第一个表达式是真的,或者在这种情况下是真实的。
所以在你的代码中,this.view.remove()仅在this.view真实时运行。