我正在检查bootstrap模态源代码,并找到了这样的一行。这if (!this.isShown || e.isDefaultPrevented()) return
做了什么?在我看来,if()中的代码是否被评估为false
或true
,此代码段中的其余代码仍将被执行。那么设置这样的行有什么意义呢return
为空?
Modal.prototype.hide = function (e) {
if (e) e.preventDefault()
e = $.Event('hide.bs.modal')
this.$element.trigger(e)
if (!this.isShown || e.isDefaultPrevented()) return
this.isShown = false
this.escape()
this.resize()
$(document).off('focusin.bs.modal')
this.$element
.removeClass('in')
.attr('aria-hidden', true)
.off('click.dismiss.bs.modal')
.off('mouseup.dismiss.bs.modal')
this.$dialog.off('mousedown.dismiss.bs.modal')
$.support.transition && this.$element.hasClass('fade') ?
this.$element
.one('bsTransitionEnd', $.proxy(this.hideModal, this))
.emulateTransitionEnd(Modal.TRANSITION_DURATION) :
this.hideModal()
}
答案 0 :(得分:1)
if (!this.isShown || e.isDefaultPrevented()) return;
这更像是
的单行if (!this.isShown || e.isDefaultPrevented()){
return;
}
这只是意味着如果已经显示模态(this.isShown
将为真)或者如果事件的默认操作被阻止,则只需从此方法返回without executing any further statements
- 在这种情况下,它意味着不要不要隐藏模态。
答案 1 :(得分:1)
return
指令是立即执行并中断函数的执行。因此,任何后续指令都不会被执行。