所以在主干中,当我们触发事件时,可以说
this.trigger("do:something")
如果没有侦听器,显然没有抛出任何错误,但是有任何副作用,否则我需要将其包装在条件中?
骨干肯定在.trigger
调用上运行了一些代码。如果您很热衷,则可以通过查看源代码来实际了解发生的情况:https://github.com/jashkenas/backbone/blob/master/backbone.js
如果对象未定义事件,则代码可能等于有条件的提前返回。或者,如果添加了任何侦听器,则可能涉及迭代可能的回调数组。
如果您可以简单地检查条件,那么它的运行速度可能比调用空的.trigger
要快,尽管区别肯定永远不会引起注意。
如果您的条件使您的代码难看,或基于其他主干库方法,我将跳过它。